diff --git a/AccessingMultiDimNDRangeProposal.md b/AccessingMultiDimNDRangeProposal.md new file mode 100644 index 00000000..e6fa10d6 --- /dev/null +++ b/AccessingMultiDimNDRangeProposal.md @@ -0,0 +1,217 @@ +We can discuss this proposal either here (in comments) or via the discussion list [here](http://groups.google.com/group/aparapi-discuss/browse_thread/thread/27e407cce98d9af0). + +Note this is nothing to do with accessing Java 2D arrays in Aparapi. This discussion is focused on the ability to expose the execution of kernels over 1, 2 or 3 dimensions. The memory in each case is a single contiguous region (like a single dimension primitive array). + +At present an Aparapi kernel can only be executed using a single dimension. If we wish to represent execution over `WIDTH x HEIGHT` element grid we would execute over the range `(WIDTH*HEIGHT)` and manually divide/mod `getGlobalID()` by `WIDTH` to determine the `x` and `y` for each. + +Similarly we would multiply `y` by `WIDTH` and add `x` `(y*WIDTH+x)` to convert an `X,Y` location to a linear global id + +``` +final static int WIDTH=128; +final static int HEIGHT=64; +final int in[] = new int[WIDTH*HEIGHT]; +final int out[] = new int[WIDTH*HEIGHT]; +Kernel kernel = new Kernel(){ + public void run(){ + int x = getGlobaId()%WIDTH; + int y = getGlobalID()/WIDTH; + if (!(x==1 || x==(WIDTH-1) || y==1 || y==(HEIGHT-1)){ + int sum = 0; + for (int dx =-1; dx<2; dx++){ + for (int dy =-1; dy<2; dy++){ + sum+=in[(y+dy)*WIDTH+(x+dx)]; + } + } + out[y*WIDTH+x] = sum/9; + // or out[getGlobalID()] = sum/9; + } + } + +}; +kernel.execute(WIDTH*HEIGHT); +``` + +OpenCL natively allows the user to execute over 1, 2 or 3 dimension grids via the [clEnqueueNDRangeKernel()](http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueNDRangeKernel.html) method. + +We chose not to expose this in Aparapi but there have been requests for us to allow it. + +There are a number of things to consider here: + 1. Extending the syntax of `kernel.execute()` to allow multi dimensional grids. + 1. Mapping Kernel methods to OpenCL's `get_local_id(int dim), get_local_size(int dim), get_group_id(int_dim), etc`. At present we map `kernel.getGlobalId()` to `get_local_id(0)`. + 1. Handling all of these when an application drops back to JTP mode. + +## Extending `Kernel.execute(int range)` ## +Sadly we can't overload `Kernel.execute(int range), Kernel.execute(int xrange, int yrange) and Kernel.execute(int xrange, int yrange, int zrange)` because we already have kernel.execute(int, int) mapped for executing mutiple passes over the linear range. + +Remember + +``` +for (int pass=0; pass<20; pass++){ + kernel(1024); +} +``` + +Is equivalent to + +``` +kernel(1024, 20); +``` + +I think I would prefer + * `Kernel.execute(int range)` + * `Kernel.execute(int range, int passes)` + * `Kernel.executeXY(int xrange, int yrange)` + * `Kernel.executeXY(int xrange, int yrange, int passes)` + * `Kernel.executeXYZ(int xrange, int yrange, int zrange)` + * `Kernel.executeXYZ(int xrange, int yrange, int zrange, int passes)` + +Obviously in the above calls we are only supplying the _global_ bounds for the grid. We could also provide mappings allowing local ranges. +I think I would prefer + * `Kernel.executeLocal(int range, int local)` + * `Kernel.executeLocal(int range, int local, int passes)` + * `Kernel.executeXYLocal(int xrange, int yrange, int xlocalrange, int ylocalrange)` + * `Kernel.executeXYLocal(int xrange, int yrange, int xlocalrange, int ylocalrange, int passes)` + * `Kernel.executeXYZLocal(int xrange, int yrange, int zrange, int xlocalrange, int ylocalrange, int zlocalrange)` + * `Kernel.executeXYZLocal(int xrange, int yrange, int zrange, int xlocalrange, int ylocalrange, int zlocalrange, int passes)` + +Another alternative may be to create Range classes + +``` +class Range{ + int passes; + int width; + static Range create(int width); + static Range create(int width, int passes); +} + +class Range2D extends Range{ + int height; + static Range create(int width, int height); + static Range create(int width, int height, int passes); + +} + +class Range3D extends Range2D{ + int depth; + static Range create(int width, int height); + static Range create(int width, int height, int passes); +} +``` + +With appropriate constructors (or factory methods) to allow + +`Kernel.execute(Range range)` + +Then execute would be simply. + +`Kernel.execute(Range.create(1,1))` + +We can also arrange for the group size to be placed in the base Range class. + +``` +class Range{ + int groupSize; + int passes; + int width; + static Range create(int width); + static Range create(int width, int passes); +} +``` + + + +## Mapping to OpenCL multi dim methods. `i.e get_global_id(1), get_local_size(2) etc` ## + +We could just add `getGlobalId(int dim), getLocalSize(int dim)` etc to replicate OpenCL methods. + +I would prefer to offer the following global mappings +| **Kernel** | **OpenCL** | +|:-----------|:-----------| +|getGlobalId()|get\_global\_id(0)| +|getGlobalX()|get\_global\_id(0)| +|getGlobalY()|get\_global\_id(1)| +|getGlobalZ()|get\_global\_id(2)| +|getGlobalSize()|get\_global\_size(0)| +|getGlobalWidth()|get\_global\_size(0)| +|getGlobalHeight()|get\_global\_size(1)| +|getGlobalDepth()|get\_global\_size(2)| + +And the following local mappings +| **Kernel** | **OpenCL** | +|:-----------|:-----------| +|getLocalId()|get\_local\_id(0)| +|getLocalX()|get\_local\_id(0)| +|getLocalY()|get\_local\_id(1)| +|getLocalZ()|get\_local\_id(2)| +|getLocalSize()|get\_local\_size(0)| +|getLocalWidth()|get\_local\_size(0)| +|getLocalHeight()|get\_local\_size(1)| +|getLocalDepth()|get\_local\_size(2)| + +## An example ## + +``` +final static int WIDTH=128; +final static int HEIGHT=64; +final int in[] = new int[WIDTH*HEIGHT]; +final int out[] = new int[WIDTH*HEIGHT]; +Kernel kernel = new Kernel(){ + public void run(){ + int x = getGlobalX(); + int y = getGlobalY(); + if (!(x==1 || x==(getGlobalWidth()-1) || y==1 || y==(getGlobalHeight()-1)){ + int sum = 0; + for (int dx =-1; dx<2; dx++){ + for (int dy =-1; dy<2; dy++){ + sum+=in[(y+dy)*getGlobalWidth()+(x+dx)]; + } + } + out[y*getGlobalWidth()+x] = sum/9; + // or out[getGlobalID()] = sum/9; + } + } + +}; +kernel.executeXY(WIDTH, HEIGHT); +``` + +Or if we choose the `Range` class approach. + +``` +final static int WIDTH=128; +final static int HEIGHT=64; +final int in[] = new int[WIDTH*HEIGHT]; +final int out[] = new int[WIDTH*HEIGHT]; +Kernel kernel = new Kernel(){ + public void run(){ + int x = getGlobalX(); + int y = getGlobalY(); + if (!(x==1 || x==(getGlobalWidth()-1) || y==1 || y==(getGlobalHeight()-1)){ + int sum = 0; + for (int dx =-1; dx<2; dx++){ + for (int dy =-1; dy<2; dy++){ + sum+=in[(y+dy)*getGlobalWidth()+(x+dx)]; + } + } + out[y*getGlobalWidth()+x] = sum/9; + // or out[getGlobalID()] = sum/9; + } + } + +}; +kernel.execute(Range2D.create(WIDTH, HEIGHT)); +``` + +## Handling this from JTP mode ## + +Mapping to OpenCL for this is all fairly straightforward. + +In Java JTP mode we will have to emulate this. For `get_global_id(0..3)` (`getGlobalX()`, `getGlobalY()` and `getGlobalZ()` using our proposed Aparapi Java mappings) we can of course easily offer reasonable implementations, this just requires the Java code to essentially nest 3 loops (or emulate) and set `globalX`, `globalY`, `globalZ` inside each nesting. + +For `get_local_size(0..3)` (`getLocalWidth()`, `getLocalHeight()` and `getLocalDepth()` using our proposed Aparapi Java mappings) we will need to break the `globalWidth`/`globalHeight` and `globalDepth` into some arbitrary equal 'chunks' (note I am avoiding using the word _groups_ here to avoid confusion with `get_group_size(0..3)`! + +At present we always create a synthetic group in JTP mode which is the the # or cores. This will need to be changed. If the user requests a grid (64,64,8,8) (global width 64, global height 64, local width 8, local height 8) then we will have to create a JTP group of 64 (8x8) and just in case the kernel code contains a barrier, we will need to ensure we launch 64 threads for this group. From our experience it is best to launch one thread per core, so we may lose some JTP performance executing in this mode. + + + + diff --git a/AddingLambdasToAparapi.md b/AddingLambdasToAparapi.md new file mode 100644 index 00000000..ad3d31ad --- /dev/null +++ b/AddingLambdasToAparapi.md @@ -0,0 +1,150 @@ +In the recently added ''lambda'' branch we have been experimenting with adding lambda support to Aparapi. We believe that this upcomming Java 8 feature will be a natural way to express parallel algorithms which can be executed on the GPU. + +A link to the branch can be found [here](http://openjdk.java.net/projects/lambda/) preview. + +You will need to get the latest binary build of ''Project Lambda'' to experiment with these new features. The 'Project Lambda' preview can be found [here](http://jdk8.java.net/lambda/). + +Once you have a Lambda enabled Java 8 JDK Java set JAVA\_HOME to your Java8 Lambda enabled compiler and build Aparapi. + +So from the root of `SumatraExperiments` just use + +``` +$ ant +``` + + +We are slowly walking through some of the Aparapi demos and converting them. At present NBody and Mandel have been converted. + + +--- + + +With Lambda enabled Aparapi we remove the need to derive from a base Kernel class, we will allow the user to express their code as a lambda using the following basic pattern + +``` +Device.bestGPU().forEach(int range, IntConsumer lambda); +``` + +The Java 8 stream API defines a type called `java.util.function.IntConsumer`. This is essentially an interface with a Single Abstract Method (these types are referred to as SAM types in the stream API code). + +IntConsumer looks something like.... + +``` +interface IntConsumer{ + public void accept(int Id); +} +``` + + +So you can run the familiar 'squares' kernel using + +``` +int in[] = ..// +int out[] = .../ +Device.bestGPU().forEach(in.length, (i)->{ + out[i] = in[i]*in[i]; + }); +``` + +Instead of + +``` +int in[] = ..// +int out[] = .../ +Device.bestGPU().forEach(in.length, new IntConsumer(){ + public void accept(int i){ + out[i] = in[i]*in[i]; + } + }); +``` + +To accomodate lambda's we created `Device.forEach(int range, IntConsumer ic)` which converts the bytecode of the `ic` parameter to OpenCL at runtime. The captured args (in[.md](.md), out[.md](.md) and i - in this case) are passed to the GPU and the kernel executed. + +During our early experiments we encountered an interesting issue. The new 'lambdafied' javac uses Java 7 method handles and invoke dynamic instructions to dispatch the lambda code. It does this by injecting a call to a MethodHandle factory into the call site. At runtime, this factory creates a synthetic class (to capture call-site args) and passes this to our Device.forEach(). + +We needed to analyse this synthetically generated class in order to work out which args need to be sent to the GPU. Of course we have a bunch of tools already in Aparapi for analyzing bytecode, but this code expects to find bytecode in class files (either in a Jar or on the disk), we had to find a way to access these classfile bytes to Aparapi. + +We have a couple of proposed solutions for solving this. The most promising is to turn the aparapi.dll/aparapi.so native library (used by Aparapi at runtime) into a JVMTI agent (like hprof). JVMTI agents are native libraries which have access to some aspects of a running JVM (via the JVM Tool Interface). We havea prototype JVMTI agent which 'listens' for classfiles which represent these 'synthetic lambda helpers' and allows us to get hold of the bytecode for these classes. + +This will mean that in future we will change how Aparapi is launched. + +Instead of +``` +$ java -Djava.library.path=path/to/aparapi -classpath path/to/aparapi/aparapi.jar:your.jar YourClass +``` +We will use +``` +$ java -agentlib=path/to/aparapi/aparapi.dll -classpath path/to/aparapi/aparapi.jar:your.jar YourClass +``` + +We are also looking into the possibility of having this agent provide the bytecode for all Aparapi classes. We believe that this will enable us to ultimately remove MethodModel/ClassModel and even the InstructionSet classes and handling all of this in JNI. + +We would welcome comments on these proposals. Either here, or in the discussion list. Let us know what you think. + + +--- + + +Consequences of lambdification of Aparapi. + + * No support for local memory, group size or barriers in Lambda form + * Calls to Kernel base class methods (such as getGlobalId()) will not be allowed. The 'global id' will be passed as an arg to the lambda. + * We will need to add support for calling static methods (of course the bytecode for the called methods cannot violate Aparapi restrictions). + * We might need to drop support for multi dimension dispatch. This is more a convergence story with Sumatra (which is unlikely to support this) + * Unlikely that explicit buffer management will be simple. + * We can use lambda's for control as well as the kernel itself. See examples below. + +Alternate forms for kernel dispatch + +This version would allow us to carry over Aparapi's device selection +``` +Device.bestGPU().forEach(1024, i->{lambda}); +``` + +This version would allow us to carry over Aparapi's Range selection +``` +Device.bestGPU().range2D(width, height).forEach(1024, rid->{lambda}); +``` + +This version would allow us to mimic `Kernel.execute(1024, 5)` +``` +Device.bestGPU().forEach(1024, 5, (id, passid)->{lambda}); +``` + +We could even have the range iterated over until some other lambda determines we are done +``` +Device.bestGPU().forEachUntil(1024, id->{lambda}, ->{predicate lambda}); +``` + +Explicit buffer handling could be removed in many cases by allowing the bytecode of the 'until' predicate to be snooped for buffer references. +``` +int lotsOfData[] = ...; +boolean found[false] = new boolean[1]; +Device.bestGPU().forEachUntil(1024, 5, + (id, passid)->{ /* mutate lotsOfData, found[0]=true when done */ } + ->{found[0]]}); +``` +In the above cases Aparapi can determine that between each pass it needs to ''ONLY'' copy `found[]` back from the device. + +There is no reason that the range itself needs to be constant, we can use a collection/iterable. This helps with some reductions. +``` +int range[] = new int[]{1024,512,128,64,32,16,8,4,2,1,0}; +Device.bestGPU().forEach(range,{lambda}); +``` + +or the range can be a lambda itself, here we specify a start and end value for the range itself, and a lambda to provide each step. + +``` +Device.bestGPU().forEach(1024, 1, r->{return(r/2);},(pass, r, id)->{lambda}); +// or +Device.bestGPU().forEach(1, 1024, r->{return(r*2);},(pass, r, id)->{lambda}); +``` + + + + + + + + + diff --git a/AddressSpacesUsingBuffers.md b/AddressSpacesUsingBuffers.md new file mode 100644 index 00000000..5da177fb --- /dev/null +++ b/AddressSpacesUsingBuffers.md @@ -0,0 +1,70 @@ +The general idea is to have a AS\_PRIMTYPE\_Buffer for each AS=address +space and PRIM=primitive type. Here is an example for +LocalFloatBuffer which would be a buffer for floats that got mapped to +OpenCL local address space. + +As with normal FloatBuffers, the float elements are accessed using +_get_ and put_methods_ + +Although a LocalFloatBuffer conceptually exists only for the +lifetime of a workgroup, it is still constructed in the enclosing +Kernel, not in the Kernel.Entry.run method. (Aparapi does not support +constructing new objects inside the Kernel.Entry.run method). + +A typical declaration would be: +``` +LocalFloatBuffer locbuf = new LocalFloatBuffer{12); +``` + +The argument 12 here means that 12 floats would be used by each +workitem in the workgroup. So the total buffer would be LocalSize\*12 +floats. Aparapi would at runtime allocate a total local OpenCL +buffer to be this size. Note how this removes the need for the +programmer to specify localSize anywhere. + +_Note: For each `Kernel.Entry.execute(globalSize)` call, the runtime will +determine an appropriate workgroup size, also called localSize, +depending on the capabilities of the device, and on the globalSize. +The localSize will always evenly divide the globalSize, in other words +all workgroups for an execute context will be the same size. A +workitem can determine localSize by calling getLocalSize()._ + +Because workitems operate simultaneously and in an undetermined order, +workitems will generally only use _put_ on its own portion of the +LocalFloatBuffer between the LocalBarriers, and will generally only +use get outside the LocalBarriers. + +Some example code (from NBody) follows. Here each workitem copies a +"BODY" consisting of 4 floats. The global array contains 4\*globalSize +floats, and we want to iterate thru this global array, copying it into +local memory and operating on it there. This will take +globalSize/localSize "tiles". For each tile, each workitem fills in +one "BODY"'s worth or 4 elements + +``` + // outside run method... + final int BODYSIZE = 4; + LocalFloatBuffer pos_xyzm_local = new LocalFloatBuffer(BODYSIZE); + // + // inside run method... + int numTiles = globalSize / localSize; + for (int i = 0; i < numTiles; ++i) { + // load one tile into local memory + int idx = i * localSize + localId; // index into a global memory array + localBarrier(); + pos_xyzm_local.put(localId * BODYSIZE + 0, pos_xyzm[idx * BODYSIZE + 0]); + pos_xyzm_local.put(localId * BODYSIZE + 1, pos_xyzm[idx * BODYSIZE + 1]); + pos_xyzm_local.put(localId * BODYSIZE + 2, pos_xyzm[idx * BODYSIZE + 2]); + pos_xyzm_local.put(localId * BODYSIZE + 3, pos_xyzm[idx * BODYSIZE + 3]); + // Synchronize to make sure data is available for processing + localBarrier(); + + // now the entire LocalFloatBuffer has been filled. + // each workitem might use the entire Buffer + // which consists of localSize BODYs + for (int j = 0; j < localSize; ++j) { + float r_x = pos_xyzm_local.get(j * BODYSIZE + 0) - myPos_x; + float r_y = pos_xyzm_local.get(j * BODYSIZE + 1) - myPos_y; + float r_z = pos_xyzm_local.get(j * BODYSIZE + 2) - myPos_z; + // ...etc +``` \ No newline at end of file diff --git a/AparapiExtensionProposal.md b/AparapiExtensionProposal.md new file mode 100644 index 00000000..7336a123 --- /dev/null +++ b/AparapiExtensionProposal.md @@ -0,0 +1,288 @@ +# Here is a proposed Aparapi extension mechanism # + +This would allow a developer to create a library that could be used by Aparapi Kernel code. The library would include OpenCL and Java implementations. + +We will treat this as a live document. Please join the discussions at http://groups.google.com/group/aparapi-discuss/browse_thread/thread/7ec81ecb2169aa4 and I will update this page to reflect what I think the latest decisions are:- + +Currently Aparapi allows Java bytecode to be converted to OpenCL at runtime. Only the OpenCL generated by this conversion process is made available. Sometimes for performance reasons we might want to allow hand coded OpenCL to be called from Aparapi kernel code. + +Here we will present a strawman API which would allow extension points to be added by an end user or by a library provider. + +We will use an FFT usecase to walk through the steps. + +The FFT (Fast Fourier Transform) algorithm can be coded in Aparapi, but for performance reasons handcrafted OpenCL is likely to be more performant. The goal is to allow Aparapi to do what it does best, i.e. manage the host buffer allocations and provide a mechanism for binding arbitrary opencl code at runtime. + +So lets assume we wanted an Aparapi Kernel to be able to call an Aparapi extension for computing FFT (forward and reverse). The Kernel implementation might look like this. + +``` + public static class BandStopFilter extends Kernel{ + FFT fft = new FFT(); // Create an instance of the Extension point. + float[] real; + float[] imaginary; + + BandStopFilter (float[] _real){ + real = _real; + imaginary = new float[_real.length]; + + } + + @Override public void run() { + fft.forward(real, imaginary); + } + } +``` + +The main method then would just execute the Kernel using the familiar `kernel.execute()` method :- +``` + public static void main(String[] args) { + float[] data = new float[1024]; + BandStopFilter kernel = new BandStopFilter (data); + kernel.execute(data.length); + } +``` +Essentially we want the `FFT.forward(float[] _real, float[] _imaginary)` and `FFT.reverse(float[] _real, float[] _imaginary)` methods to be callable from Aparapi Kernel code. We want Aparapi to handle the call-forwarding and the argument/buffer mapping transfers. We want Aparapi to call the Java methods normally if OpenCL is not available but would like Aparapi to use the implementor provided OpenCL if it is. + +So the implementor will be required to provide both a Java and an OpenCL version of the callable methods because Aparapi will decide which version needs to be called ant runtime. + +Any extension point is required to implement the AparapiExtensionPoint interface. + +``` +public class AparapiExtensionPoint + public String getOpenCL(); +} +``` + +Here is a possible (although incomplete) FFT implementation. +``` + public class FFT implements AparapiExtensionPoint{ + @AparapiCallable public void forward( + @Global @ReadWrite float[] _data, + @Global @ReadWrite float[] _imaginary) { + // java implementation + } + + @AparapiCallable public void reverse( + @Global @ReadWrite float[] _data, + @Global @ReadWrite float[] _imaginary) { + // java implementation + } + + @Override public String getOpenCL() { + return "" + +"void my_package_FFT_forward(" + +" __global float* _real," + +" __global float* _imaginary )" + +" {" + +" // OpenCL implemention" + +" }" + +"void my_package_FFT_reverse(" + +" __global float* _real," + +" __global float* _imaginary )" + +" {" + +" // OpenCL implemention" + +" }"; + } + + } +``` + +The implementer’s class will be required to define the callable aparapi methods as well as implement the `getOpenCL()` method so that the OpenCL implementation of those methods can be extracted at run-time. + +Aparapi will provide annotations to decorate the methods and args/parameters of the exposed callable methods . These annotations provide information so that Aparapi locate the callable methods as well as parameter hints to help coordinate buffer types (global, local, constant) and transfer directions (read,write, readWrite) when executing the methods from a Kernel. This information is consulted during the normal bytecode analysis that Aparapi provides when Aparapi hits the call site. + +Note that the Java code inside the @AparapiCallable functions (or code executed from it) is not constrained to the normal Aparapi subset. It can be any legitimate Java code, but should be thread safe (because it will be called from JTP mode!). + +Note also that the OpenCL code yielded from the getOpenCL() method is assumed to be complete, Aparapi does not attempt to parse this code. If the code fails to compile Aparapi will fallback and execute the whole Kernel in JTP mode. + +BTW we show getOpenCL() returning a String literal. This is most likely to be how code is returned. However, it could be extracted from a File? a resource in the Jar file? or dynamically generated based on some state. For example an FFT implementation might choose to use different code for radix2 or radix4 implementations (based on a paramater passed to FFT() constructor - say FFT(FFT.RADIX2)) in which case the getOpenCL() method might yield different code. + +The above proposal covers the case where a third party might want to provide an Aparapi extension point as a library. + +We might also consider allowing single methods within the Kernel to be optimized, where the OpenCL is made available via the AparapiCallable annotation. The method would still use the same Annotations for the args (to allow buffer txfers to be optimized). + +``` +Kernel k = new Kernel(){ + @AparapiCallable(” /* opencl code for sum() goes here */”) + int sum(@Global @ReadWrite int[] data, int length){ + int sum = 0; + for (int v:data){ + sum+=v; + } + } + @Override public void run(){ + sum(data); + } +} +``` + +Here are the proposed new interfaces/annotations + +``` + public interface AparapiExtensionPoint { + public String getOpenCL(); + } + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) + public @interface AparapiCallable { + String value default NULL; + } + + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) + public @interface Global {} + + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) + public @interface Local {} + + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) + public @interface Constant {} + + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) + public @interface ReadWrite {} + + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) + public @interface ReadOnly {} + + @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) + public @interface WriteOnly {} + +``` + +And here is the example code in one chunk +``` + public class FFT implements AparapiExtensionPoint{ + @AparapiCallable public void forward( + @Global @ReadWrite float[] _data, + @Global @ReadWrite float[] _imaginary) { + // java implementation + } + + @AparapiCallable public void reverse( + @Global @ReadWrite float[] _data, + @Global @ReadWrite float[] _imaginary) { + // java implementation + } + + @Override public String getOpenCL() { + return "" + +"void my_package_FFT_forward(" + +" __global float* _real," + +" __global float* _imaginary )" + +" {" + +" // OpenCL implemention" + +" }" + +"void my_package_FFT_reverse(" + +" __global float* _real," + +" __global float* _imaginary )" + +" {" + +" // OpenCL implemention" + +" }"; + } + + + } + + public class BandStopFilter extends Kernel{ + FFT fft = new FFT(); + float[] real; + float[] imaginary; + + BandStopFilter (float[] _real){ + real = _real; + imaginary = new float[_real.length]; + + } + + @Override public void run() { + fft.forward(real, imaginary); + } + } + + public static void main(String[] args) { + float[] data = new float[1024]; + BandStopFilter kernel = new BandStopFilter (data); + kernel.execute(data.length); + } +``` + +After discussion I think we are converging on a less complex solution. This is based on Witold's feedback suggestion (see below) where we use OpenCL annotations rather than forcing the implementation of the interface and the `getOpenCL()` method as originally suggested. + +So we will create an `@OpenCL` annotation for classes/methods. + +The `@OpenCL` annotation on the methods will contain the OpenCL source replacement for a specific method. The arg list will be created by Aparapi. + +The `@OpenCL` annotation on a class allows us to optionally introduce common code (helper methods, #pragmas, constants) which will precede the method declarations in the OpenCL code. + +So an FFT example whereby `forward()` and `reverse()` methods both called a common `foo()` method might look like this. + +``` +@OpenCL(common="/* common void foo(){} + maybe #pragmas + accessable +global fields declared here */") +public class FFT extends AparapiExtensionPoint { + @OpenCL(signature="//function signature - OPTIONAL", body="{ /* +uses foo(); */ }") + public void forward( + @Global @ReadWrite float[] _data, + @Global @ReadWrite float[] _imaginary) { + // java implementation + } + @OpenCL(function="{ /*uses foo(); */) }") + public void reverse( + @Global @ReadWrite float[] _data, + @Global @ReadWrite float[] _imaginary) { + // java implementation + } + } +} +``` + + +To invoke from an Aparapi kernel. We should be able to do something like + + +``` + public class BandStopFilter extends Kernel{ + FFT fft = new FFT(); + float[] real; + float[] imaginary; + + BandStopFilter (float[] _real){ + real = _real; + imaginary = new float[_real.length]; + + } + + @Override public void run() { + fft.forward(this, real, imaginary); + } + } + + public static void main(String[] args) { + float[] data = new float[1024]; + BandStopFilter kernel = new BandStopFilter (data); + kernel.execute(data.length); + } +``` + +Ideally we would also like to invoke FFT directly (instead of via a Kernel). This is tricky because the `forward()`} and `reverse()` methods will need to be invoked across a range and of course the dispatch across the range needs to be initiated from Aparapi. + +The only way I can see how to do this is to force the creation of an interface so we can use Java's existing `Proxy` mechanism to create a wrapper. + +``` +@OpenCL(wraps=FFT.class); +interface FFTInterface{ + public void forward( Range _range, float[] _data, float[] _imaginary); + public void reverse( Range _range, float[] _data, float[] _imaginary); +} +``` + +Then provide a mechanism for extracting a proxy and invoking it. + +``` +float[] real = //?? +float[] imag = //?? +Aparapi.wrap(FFTInterface.class).forward(range, real, imag); +``` + +I can't see a cleaner solution. + + + diff --git a/AparapiPatterns.md b/AparapiPatterns.md new file mode 100644 index 00000000..4ddf648a --- /dev/null +++ b/AparapiPatterns.md @@ -0,0 +1,129 @@ +# **Aparapi Patterns** # +The following suggestions help solve some common problems found in using Aparapi. + +Additional suggestions and solutions to extend this list would be welcome. +## How do I return data from a kernel if I can’t write to kernel fields? ## +Use a small array buffer (possibly containing a single element) and assign it from the kernel. + +For example, the following kernel code detects whether the `buffer[]` contains the value 1234. The flag (true or false) is returned in `found[0]`. +``` +final int buffer[] = new int[HUGE]; +final boolean found[] = new boolean[]{false}; +// fill buffer somehow + kernel kernel = new kernel(){ + @Override public void run(){ + if (buffer[getGlobald()]==1234){ + found[0]=true; + } + } +}; +kernel.execute(buffer.length); +``` + +This code does include a race condition, whereby more than one value of `Kernel.getGlobalId()` might contain 1234 and try to set `found[0]`. This is not a problem here, because we don't care if multiple kernel executions match, provided one flips the value of `found[0]`. +## How can I use Aparapi and still maintain an object-oriented view of my data? ## +See the [NewFeatures](NewFeatures.md) page. Aparapi can now handle simple arrays of objects, which minimizes the amount of refactoring required to experiment with Aparapi. However, performance is still likely to be better if your algorithm operates on data held in parallel primitive arrays. +To get higher performance from Aparapi with minimal exposure to data in this parallel primitive array form, we can (with a little work) allow both forms of data to co-exist. + +Let’s reconsider the NBody problem (http://en.wikipedia.org/wiki/N-body_problem) . + +A Java developer writing an NBody solution would most likely create a Body class: +``` +class Body{ + float x,y,z; + float getX(){return x;} + void setX(float _x){ x = _x;} + float getY(){return y;} + void setY(float _y){ y = _y;} + float getZ(){return z;} + void setZ(float _z){ z = _z;} + + + // other data related to Body unused by positioning calculations +} +``` + +The developer would also likely create a container class (such as NBodyUniverse), that manages the positions of multiple Body instances. +``` +class NBodyUniverse{ + final Body[] bodies = null; + NBodyUniverse(final Bodies _bodies[]){ + bodies = _bodies; + for (int i=0; i ant clean build +``` + +The NBody build.xml file includes a ‘run’ target so you can launch the application using. + +``` +C:> ant run +``` + +Or if you prefer to launch from either the nbody.sh or nbody.bat script. + +For Linux® we also need to chmod nbody.sh in order to execute it. +``` +chmod +x nbody.sh +``` + +The nbody scripts take the execution mode as the first argument, the number of bodies as the second argument, and then the height and width (in pixels). + +Windows example: +``` +C:> nbody GPU 32768 800 800 +``` + +Linux example: +``` +$ ./nbody.sh GPU 32768 800 800 +``` + + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/CREDITS.txt b/CREDITS.txt deleted file mode 100644 index 63d275b5..00000000 --- a/CREDITS.txt +++ /dev/null @@ -1,18 +0,0 @@ -We want to correctly attribute all contributions and will maintain this CREDITS.txt file at the head of the trunk. - -We discourage including attribution as comments in the code, instead we intend to let the history feature of SVN be the primary method for tracking attributions. - -Aparapi Contributors. Thanks to all. If I have missed you contribution, please let me know. - -Witold Bolt provided patch for issue #5. Added and tested Mac OS support. Oct 12th 2011 -Kenneth Skovhede provided patch for issue #11 (Correcting conversion of Java Nan and Infinity values to OpenCL equiv). Oct 28th 2011 -Kenneth Skovhede provided patch for issue #12 (Handling of Kernel static fields) Oct 28th 2011. -Ryan LaMothe provided patch for issue #3 (Support of char - mapped to unsigned short) Nov 28th 2011. -Ryan LaMothe provided patch for issue #22 (Integrate FindBugs into the Ant build scripts) Feb 18th 2012. -Ryan LaMothe provided patch for issue #37 (Add Kernel and JNI build support for Applets and JNLP JWS) Feb 18th 2012. -Oliver Coleman provided patch for issue #64 (Support explicit boolean put and get) Aug 15th 2012 -Steven Libby provided patch for #6 (Allow finer control over fallback mode selection) Aug 21th 2012 -Steven Libby and Ryan Lamothe for #10 (Support for OpenMP, major refactoring cleanup and support for multidim arrays) March 28th 2013 - Many thanks for Steven and Ryans work here. This was a huge tidy up and refactoring effort. -Paul Miner issue #61 and #115 (JTP Speed up and fixes to explicit puts) June 13th 2013 -lgalluci for his fix for issue #121 (incorrect toString for 3D ranges) July 6th 2013 diff --git a/ChoosingSpecificDevicesForExecution.md b/ChoosingSpecificDevicesForExecution.md new file mode 100644 index 00000000..bcdf3fa4 --- /dev/null +++ b/ChoosingSpecificDevicesForExecution.md @@ -0,0 +1,70 @@ +Previously Aparapi chose the first GPU device when `Kernel.execute()` was called. This make it easy to execute simple Kernels, but was problematic when users wished finer control over which device should be chosen. Especially when the first device may be unsuitable. + +We recently added new classes and API's to allow the developer to specify exactly which device we intend to target. + +A new `Device` class has been added. This allows the user to select a specific device; either by calling a helper method `Device.firstGPU()` or `Device.best()`. Or by allowing the user to iterate through all devices and choose one based on some other criteria (capabilities? vendor name?). + +So selecting the 'best' (most performant) device could be achieved using. + +``` + Device device = Device.best(); +``` + +Alternatively if I wanted the first AMD GPU device I might use:- + +``` + Device chosen=null; + for (Device device: devices.getAll()){ + if (device.getVendor().contains("AMD") && device.isGPU()){ + chosen = device; + break; + } + } +``` + +A Device can be queried (isGPU(), isOpenCL(), isGroup(), isJava(), getOpenCLPlatform(), getMaxMemory(), getLocalSizes()) to yield it's characteristics. + +To execute on a specific device we must use the device to create our range. + + +``` +Range range = device.createRange2D(width, height); +``` + +This allows the Range to be created with knowledge of the underlying device. So for example device.createRange3D(1024, 1024, 1024, 16, 16, 16) will fail if the device does not allow a local size of (16x16x16). + +A range created using a device method captures the device which created it. The range instance has a device field which is set by the device which creates it. + +It's as if we had this code + +``` +Range range = Range.create(width, height); +range.setDevice(device); +``` + +So the Range locks the device that it can be used with. + +Now when we have a Kernel. + +``` +Kernel kernel = new Kernel(){ + @Override public void run(){ + ... + } +} +``` + +And we then use a device created range. + +``` +Device device = Device.firstGPU(); +Kernel kernel = new Kernel(){ + @Override public void run(){ + // uses input[]; + } +}; +range = device.createRange2D(1024, 1024); +kernel.execute(range); +``` + +We have forced execution on the first GPU. \ No newline at end of file diff --git a/ContributionGuide.md b/ContributionGuide.md new file mode 100644 index 00000000..bbc14c1f --- /dev/null +++ b/ContributionGuide.md @@ -0,0 +1,47 @@ +# **Contribution Guide** # +We welcome all contributions to add new features to Aparapi and make Aparapi more useful and high performing. These guidelines are intended to describe and streamline the contribution process. + +A patch can be a bug fix, a new feature, a new JUnit test case or a documentation change. + +Only members of the commit team are able to commit changes to the SVN repository. + +Only patches submitted through the process described below will be committed to SVN. + +The commit team will only applying patches which are submitted via the Aparapi project’s issue list. +> http://code.google.com/p/aparapi/issues/list +The current commit team members are: + * Eric Caspole (AMD) + * Tom Deneau (AMD) + * Gary Frost (AMD) + +If you would like to be considered for inclusion in the commit team, please send an email to anyone on the team and let them know. +## Submitting a patch ## +If the bug or enhancement does not yet appear in the issues list, please take the time add a new issue. + +Be sure to include sufficient detail to explain and recreate the bug or to justify the proposed enhancement. + +Ensure that your patch/fix does not regress any of existing JUnit tests. The [UnitTestGuide](UnitTestGuide.md) wiki page describes how to run the various Aparapi unit tests. + +Ensure that your patch does not break any sample or example. +Create a patch file (using SVN’s diff command) against a recently updated trunk, do not submit patches against branches. +Name your patch file using the following filename convention +``` + aparapi--.patch +``` + +The following shows the sequence for creating a patch for issue number 1234. +``` +$ cd aparapi-trunk +$ svn update +At revision 10339 +$ svn -diff > aparapi-1234-10339.patch +``` + +Attach your patch file to the issue via [Issue List](http://code.google.com/p/aparapi/issues/list). +## Attribution of contributions ## +We want to correctly attribute all contributions and will maintain a CREDITS.txt file at the head of the trunk. We discourage including attribution as comments in the code, instead we intend to let the history feature of SVN be the primary method for tracking attributions. +When patch is committed the commit team member will update the CREDITS.txt file and apply your patch, then will include your name (and email if you desire) as part of the SVN commit history. +## Contributions made under a different license than the existing BSD derived license ## +We cannot accept contributions or patches which are subject to other licenses. + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/ConvertingBytecodeToOpenCL.md b/ConvertingBytecodeToOpenCL.md new file mode 100644 index 00000000..e0b3bf62 --- /dev/null +++ b/ConvertingBytecodeToOpenCL.md @@ -0,0 +1,307 @@ +# Introduction # +[try this](https://aparapi.googlecode.com/svn/wiki-assets/ByteCode2OpenCL.pdf) + + +One of the unique Aparapi features is it's ability to convert Java bytecode to OpenCL automatically. + +In this page we will try to describe the process used to perform this conversion. + +If you are unfamiliar with bytecode consider visiting this page WhatIsBytecode. + +The command +``` +javac Source.java +``` + +Will compile the java source file _Source.java_ to _Source.class_ + +The classfile format is well documented [here](http://en.wikipedia.org/wiki/Java_class_file) and we will not go into too much detail here, however it should be known that Aparapi must parse the classfile of each `Kernel` to extract the bytecode for the `Kernel.run()` and any method reachable from `Kernel.run()`. + +Lets start with a simple Kernel. + + +``` +import com.amd.aparapi.Kernel; + +public class Squarer extends Kernel{ + int[] in; + int[] out; + @Override public void run(){ + int gid = getGlobalId(0); + out[gid] = in[gid] * in[gid]; + } +} +``` + +We will compile this + +``` +javac -g -cp path/to/aparapi/aparapi.jar Squarer.java +``` + +and then we can look at the bytecode using `javap` + +``` +javap -c -classpath path/to/aparapi/aparapi.jar;. Squarer +Compiled from "Squarer.java" +public class Squarer extends com.amd.aparapi.Kernel + SourceFile: "Squarer.java" + minor version: 0 + major version: 50 + Constant pool: +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V +const #2 = Method #5.#18; // Squarer.getGlobalId:(I)I +const #3 = Field #5.#19; // Squarer.out:[I +const #4 = Field #5.#20; // Squarer.in:[I +const #5 = class #21; // Squarer +const #6 = class #22; // com/amd/aparapi/Kernel +const #7 = Asciz in; +const #8 = Asciz [I; +const #9 = Asciz out; +const #10 = Asciz ; +const #11 = Asciz ()V; +const #12 = Asciz Code; +const #13 = Asciz LineNumberTable; +const #14 = Asciz run; +const #15 = Asciz SourceFile; +const #16 = Asciz Squarer.java; +const #17 = NameAndType #10:#11;// "":()V +const #18 = NameAndType #23:#24;// getGlobalId:(I)I +const #19 = NameAndType #9:#8;// out:[I +const #20 = NameAndType #7:#8;// in:[I +const #21 = Asciz Squarer; +const #22 = Asciz com/amd/aparapi/Kernel; +const #23 = Asciz getGlobalId; +const #24 = Asciz (I)I; + +{ +int[] in; + +int[] out; + +public Squarer(); + Code: + Stack=1, Locals=1, Args_size=1 + 0: aload_0 + 1: invokespecial #1; //Method com/amd/aparapi/Kernel."":()V + 4: return + + +public void run(); + Code: + Stack=5, Locals=2, Args_size=1 + 0: aload_0 + 1: iconst_0 + 2: invokevirtual #2; //Method getGlobalId:(I)I + 5: istore_1 + 6: aload_0 + 7: getfield #3; //Field out:[I + 10: iload_1 + 11: aload_0 + 12: getfield #4; //Field in:[I + 15: iload_1 + 16: iaload + 17: aload_0 + 18: getfield #4; //Field in:[I + 21: iload_1 + 22: iaload + 23: imul + 24: iastore + 25: return +} +``` + +Here we see constant pool of the class and the disassembled bytecode of the default constructor `Squarer()` and the `Squarer.run()` method. + +The constant pool is a table of constant values that can be accessed from the bytecode of any methods from within this class. Some of the constants are String literals defined within the source (or literals used to name classes, fields, methods, variables or signatures), other slots represent Classes, Methods, Fields or Type signatures. These later constant pool entries cross-reference other constant pool entries to describe higher level artifact. + +For example constant pool entry #1 is +``` +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V +``` + +So entry #1 defines a method. The class containing the method is defined in constant pool entry #6. So lets look at constant pool entry #6. + +``` +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V + +const #6 = class #22; // com/amd/aparapi/Kernel +``` + +At constant pool entry #6 we find a class definition which refers to entry #22 +``` +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V + +const #6 = class #22; // com/amd/aparapi/Kernel + +const #22 = Asciz com/amd/aparapi/Kernel; +``` +Which just contains the String (Ascii) name of the class. + +Looking back at entry #1 again, we note that the Method also references entry #17 which contains a NameAndType entry for determining the method name and the signature. +``` +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V + +const #6 = class #22; // com/amd/aparapi/Kernel + + +const #17 = NameAndType #10:#11;// "":()V + +const #22 = Asciz com/amd/aparapi/Kernel; +``` + +Entry #17's "NameAndType" references #10 for the method name. + +``` +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V + +const #6 = class #22; // com/amd/aparapi/Kernel + +const #10 = Asciz ; + +const #17 = NameAndType #10:#11;// "":()V + +const #22 = Asciz com/amd/aparapi/Kernel; +``` + +And then references #11 to get the signature. + +``` +const #1 = Method #6.#17; // com/amd/aparapi/Kernel."":()V + +const #6 = class #22; // com/amd/aparapi/Kernel + +const #10 = Asciz ; + +const #11 = Asciz ()V; + +const #17 = NameAndType #10:#11;// "":()V + +const #22 = Asciz com/amd/aparapi/Kernel; +``` + +So from constant pool #1 we ended up using slots 1,6,10,11,17 and 22 to fully resolve the method. + +This looks like a lot of work, however by breaking method and field references up like this, allows the various slots to be reused by other field/method descriptions. + +So when we see disassembled bytecode which references a constantpool slot the actual slot # (2 in the example below) will appear after the bytecode for invokevirtual. + +``` + 2: invokevirtual #2; Method getGlobalId:(I)I +``` + + +Bytecode is basically able to access three things + * Constant pool entries + * Variable slots + * Stack operands + +Instructions are able to pop operands from the stack, push operands to the stack, load values from variable slots (to the stack), store values (from the stack) to variable slots, store values from accessed fields (to the stack) and call methods (popping args from the stack). + +Some instructions can only handle specific types (int, float, double, and object instances - arrays are special forms of objects) and usually the first character of the instruction helps determine which type the instruction acts upon. So _imul_ would be a multiply instruction that operates on integers, _fmul_ would multiply two floats, _dmul_ for doubles. Instructions that begin with 'a' operate on object instances. + +So lets look at the first instruction. +``` + 0: aload_0 +``` + +This instruction loads an object (a is the first character) from variable slot 0 (we'll come back to the variable slots in a moment) and pushes it on the stack. + +Variables are held in 'slots' that are reserved at compiled time. + +Consider this static method. +``` +static int squareMe(int value){ + value += value; + return(value); +} +``` + +This method requires one variable slot. At any one time there is only one variable that is live, it just happens to be an argument to the method. + +The following method also contains one slot. +``` +static int squareMe(){ + int value=4; + value += value; + return(value); +} +``` + +Here we need two slots +``` +static int squareMe(int arg){ + int value=arg*arg; + return(value); +} +``` + +Suprisingly the following also only requires two slots. +``` +static int squareMe(int arg){ + { + int temp = arg*arg; + } + int value=arg*arg; + return(value); +} +``` + +Note that in the above example the _temp_ variable loses scope before the local variable _value_ is used. So only two slots are required. Both _temp_ and _value_ can share a slot. + +If we have an instance method we always require one extra slot (always slot 0) for the _this_ reference. + +So +``` +int squareMe(int arg){ + int value=arg*arg; + return(value); +} +``` +Requires three slots. + +Anyway back to our bytecode +``` + 0: aload_0 +``` +This loads the object instance in slot 0 (this) and pushes it on the stack. + +Next we have +``` + 1: iconst_0 +``` +Which pushes the int constant 0 on the stack. So the stack contains {this,0} + +Next we have +``` + 2: invokevirtual #2; //Method getGlobalId:(I)I +``` +This is the bytecode for calling a method. Basically the instruction itself references the constant pool (we'll come back to this ;) ) and pulls the method description in constantPool[2](2.md) which happens to be the description for a method called getGlobalId() which takes an integer and returns an int. + +So the VM will pop the top value (int - const 0) as the method arg, and then will pop an object reference (this!) and will call the method `this.getGlobalId(0)` and will push the result (an int) back on the stack. + +So our stack which contains {this,0} now contains the result of `this.getGlobalId(0)`, lets assume it is {0}. We describe this invoke instruction as consuming two operands from the stack and producing one. + +Before we start executing our stack is empty {}, the slots are initialized with 'this' (if an instance method) and any arguments passed to the method. + +``` + 0 1 + slots=[this, ? ] stack={} +``` + +``` + 0 1 + 0: aload_0 slots=[this, ? ] stack={this} + 0 1 + 1: iconst_0 slots=[this, ? ] stack={this, 0} + 0 1 + 2: invokevirtual #2; Method getGlobalId:(I)I slots=[this, ? ] stack={result of this.getGlobalId(0) lets say 0} + + 5: istore_1 slots=[this, 0 ] stack={} + + 6: aload_0 slots=[this, 0 ] stack={this} + + 7: getfield #3; //Field out:[I + +``` + diff --git a/DevelopersGuide.md b/DevelopersGuide.md new file mode 100644 index 00000000..05f4c9d4 --- /dev/null +++ b/DevelopersGuide.md @@ -0,0 +1,28 @@ +# **Developer Guide** # +Although the vast majority of the Aparapi code is Java® we do include some to C++ code (accessed from Java™ via JNI) to interface with existing OpenCL™ C/C++ headers and libraries. +Therefore to build Aparapi for a given platform (Microsoft® Windows® 32- or 64- bit and or Linux® 32- or 64- bit) we do require developers to setup a build environment containing both Java® and C++ development tools. +In this documentation we will describe the tools required to build Aparapi for the various supported platforms. +## Supported Platforms ## +In general Aparapi can be used on any platform currently supported by AMD APP SDK v2.5 or later. +Please check the AMD APP SDK site for details on supported platforms and installation help. + +http://developer.amd.com/sdks/amdappsdk/downloads/pages/default.aspx + +http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_APP_SDK_Installation_Notes.pdf + + * 32-bit Microsoft® Windows® 7 + * 32-bit Microsoft® Windows Vista® + * 64-bit Microsoft® Windows® 7 + * 64-bit Microsoft® Windows Vista® + * 32-bit Linux® + * 64-bit Linux® + +Clearly we will also depend on platform specific Oracle® Java® JDK 6 components and C++ compilers along with some platform neutral tools (such as SVN, ant and Junit) . +## Platform Specific Developer Guides ## +We have broken the Developer Guide into two separate docs. One for Linux® (32- and 64- bit) and another for Microsoft® Windows® (32- and 64- bit). Please follow the appropriate link below. + +[DevelopersGuideLinux](DevelopersGuideLinux.md) + +[DevelopersGuideWindows](DevelopersGuideWindows.md) + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/DevelopersGuideLinux.md b/DevelopersGuideLinux.md new file mode 100644 index 00000000..56f57947 --- /dev/null +++ b/DevelopersGuideLinux.md @@ -0,0 +1,189 @@ +# **Aparapi Developer Guide: Linux® 32- and 64-bit platforms** # +## SVN Client ## +To contribute to Aparapi you will need an SVN client to access the latest source code. +This page lists a number of SVN client providers http://subversion.apache.org/packages.html +Also you might want to consider one of the SVN-based plugins for Eclipse®. +http://wiki.eclipse.org/SVN_Howto +## OpenJDK or Oracle® Java JDK install (JDK1.6 or later) ## +http://OpenJDK.java.net +http://www.oracle.com/technetwork/java/javase/downloads/index.html + +Many Linux® distributions come with Java JDK pre-installed or available as an optional install component. Sometimes the version that comes pre-installed is GCJ (http://gcc.gnu.org/java/). For Aparapi you will need to ensure that you have a copy of the JDK from either the OpenJDK project or from Oracle®. + +The Oracle® J2SE JDK site contains downloads and documentation showing how to install for various Linux distributions. + +http://www.oracle.com/technetwork/java/javase/index-137561.html + +Here is an example for my Ubuntu system: +``` +$ sudo apt-get install sun-java6-jdk sun-java6-jre +``` + +When the installation is complete, ensure that your `JAVA_HOME` environment variable is pointing to the install location (such as `/usr/lib/jvm/java-6-sun-1.6.0.26`). +``` +$ export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26 +``` + +You should also add `${JAVA_HOME}/bin` to your path. + +``` +$ export PATH=$PATH}:${JAVA_HOME}/bin +``` + +Double-check your path and ensure that there is not another JDK/JRE in your path. + +``` +$ java -version +java version "1.6.0_26" +Java(TM) SE Runtime Environment (build 1.6.0_26-b03) +Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing) +``` + +## Apache Ant ## +Apache Ant® can be downloaded from the apache project page http://ant.apache.org + +Aparapi has been tested using 1.7.1 version of Ant. It may work with earlier versions, but if you encounter issues we recommend updating to at least 1.7.1 before reporting issues. + +Here is an example for installing Ant on Ubuntu : +``` +$ apt-get install ant +``` + +Ensure that `ANT_HOME` is set to the install dir. +``` +$ export ANT_HOME=/usr/local/ant +``` + +Add `${ANT_HOME}/bin` to your path. +``` +$ export PATH=$PATH}:${ANT_HOME}/bin +``` + +Double-check the installation and environment vars. + +``` +ant -version +Apache Ant version 1.7.1 compiled ... +``` + +## AMD APP SDK ## +To compile Aparapi JNI code you need access to OpenCL headers and libraries. The instructions below assume that there is an available AMD APP SDK v2.5® (or later) installed and that your platform supports the required device drivers for your GPU card. + +Install the Catalyst driver first, and then install AMD APP SDK v2.5® or later. + +See http://developer.amd.com/sdks/AMDAPPSDK/pages/DriverCompatibility.aspx for help locating the appropriate driver for your AMD card. Make sure you install the catalyst driver that includes the OpenCL™ runtime components. + + * The OpenCL™ runtime is required for executing Aparapi or OpenCL™ on your GPU or GPU, but it is not necessary for building/compiling Aparapi. + * The AMD APP SDK v2.5 is necessary for compiling the Aparapi JNI code against OpenCL™ APIs. +Once you have a suitable driver, download a copy of AMD APP SDK v2.5 or later from http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx. + +Download the installation guide for Microsoft® Windows® (and Linux®) from http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_APP_SDK_Installation_Notes.pdf. Note that if you updating from a previous version of AMD APP SDK (or its predecessor ATI STREAM SDK), first uninstall the previous version. + +Download the release notes from: http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_APP_SDK_Release_Notes_Developer.pdf +## GCC compiler (G++) for your Linux 32-bit or 64-bit platform ## +Aparapi has been tested with 32-bit and 64-bit Linux 4.1.2 or later GCC compilers. + +Ensure you have the g++ toolchain installed: +``` +$ g++ +no input files +``` + +## JUnit ## +The initial Open Source drop includes a suite of JUnit tests for validating bytecode to OpenCL™ code generation. These tests require JUnit 4. + +Download JUnit from http://www.junit.org/ and note the location of your JUnit installation; the location is needed to configure the test\codegen\build.xml file. Please see the UnitTestGuide page. +## Eclipse ## +Eclipse is not required to build Aparapi; however, the developers of Aparapi do use Eclipse and have made the Eclipse artifacts (.classpath and .project files) available so that projects can be imported into Eclipse. +The `com.amd.aparapi.jni` subproject (containing C++ JNI source) should be imported as a resource project. We do not recommend importing com.amd.aparapi.jni as a CDT project, and we do not recommend trying to configure a CDT build, the existing build.xml files has been customized for multiplatform C++ compilations. +# Building # +Check out the Aparapi SVN trunk: +``` +$ svn checkout http://aparapi.googlecode.com/svn/trunk aparapi +``` + +Checkout provides the following: +``` + aparapi/ + com.amd.aparapi/ + src/java/com.amd.aparapi/*.java + build.xml + com.amd.aparapi.jni/ + src/cpp/*.cpp + src/cpp/*.h + build.xml + test/ + codegen/ + src/java/ + com.amd.aparapi/ + com.amd.aparapi.test/ + build.xml + runtime/ + src/java/ + com.amd.aparapi/ + com.amd.aparapi.test/ + build.xml + samples/ + mandel + src/java/com.amd.aparapi.samples.mandel/*.java + build.xml + mandel.sh + mandel.bat + squares/ + src/java/com.amd.aparapi.samples.squares/*.java + build.xml + squares.sh + squares.bat + convolution/ + src/java/com.amd.aparapi.samples.convolution/*.java + build.xml + conv.sh + conv.bat + examples/ + nbody/ + src/java/com.amd.aparapi.nbody/ + build.xml + nbody.sh + nbody.bat + build.xml + README.txt + LICENSE.txt + CREDITS.txt +``` + + +## Sub Directories ## +The `com.amd.aparapi` and `com.amd.aparapi.jni` subdirectories contain the source for building and using Aparapi. + +The ant build.xml file, in each folder accept common 'clean' and 'build' targets. + +You can use the `build.xml` file at the root of the tree for two purposes: + * To initiate a build com.amd.aparapi of com.amd.aparapi.jni. + * To create a binary ‘distribution’ directory and zip file. This zip file is same as those available from the download section of the code.google.com/p/aparapi site. +## Preparing for your first build ## +Edit `com.amd.aparapi.jni\build.properties` and ensure that the properties are valid for your platform. + +View the comments in the properties file for assistance. The `build.xml` ant file contains some simple checks to help diagnose simple configuration errors in case something gets messed up. + +For Linux you should not need to edit `build.xml` unless your APP SDK install location differs from the default. The default for Linux® is `/opt/AMDAPP` +``` +amd.app.sdk.dir=/opt/AMDAPP +``` + + +Perform a build from the root directory using the following command: +``` +$ ant clean build dist +``` + +Once your build has completed you should see an additional subdirectory named `dist_linux_x86` or `dist_linux_x86_64` (depending on the bitness of your platform). + +The distribution directory contains: + * aparapi.jar containing Aparapi classes for all platforms. + * the shared library for your platform (aparapi\_x86.so or aparapi\_x86\_64.so). + * an /api subdirectory containing the 'public' javadoc for Aparapi. + * a samples directory containing the source and binaries for the mandel and squares sample projects. + +The root directory also contains either dist\_linux\_x86\_64.zip or dist\_linux\_x86.zip containing a compressed archive of the distribution tree. + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/DevelopersGuideWindows.md b/DevelopersGuideWindows.md new file mode 100644 index 00000000..078846a7 --- /dev/null +++ b/DevelopersGuideWindows.md @@ -0,0 +1,197 @@ +# **Aparapi Developer Guide: Microsoft® Windows® 32- and 64-bit platforms** # +## SVN Client ## +To contribute to Aparapi you will need an SVN client to access the latest source code. + +This page lists a number of SVN client providers http://subversion.apache.org/packages.html + +For Microsoft Windows® users TortoiseSVN incorporates SVN functionality directly into Windows Explorer view and is often preferred http://tortoisesvn.tigris.org/ + +Also you might want to consider one of the SVN-based plugins for Eclipse. +http://wiki.eclipse.org/SVN_Howto +## Oracle® Java JDK install (JDK1.6 or later) ## +http://www.oracle.com/technetwork/java/javase/downloads/index.html + +The Oracle® J2SE JDK site contains downloads and documentation showing how to install for various platforms. +http://www.oracle.com/technetwork/java/javase/index-137561.html + +When the installation is complete, ensure that your `JAVA_HOME` environment variable is pointing to the install location (such as `c:\progra~1\java\jdk1.6.0_26`)and that `%JAVA_HOME%\bin` is in your path. +``` +C:> set JAVA_HOME=c:\progra~1\java\jdk1.6.0_26 +C:> set PATH=%PATH%;%JAVA_HOME%\bin +``` + +Note that we tend to use the 8.3 form of Microsoft® Windows® path variables this avoids us having to quote paths in scripts. + +Double check your path and ensure that there is not another JDK/JRE in your path. + +``` +C:> java -version +java version "1.6.0_26" +Java(TM) SE Runtime Environment (build 1.6.0_26-b03) +Java HotSpot(TM) Client VM (build 20.1-b02, mixed mode, sharing) +``` + +## Apache Ant ## +Apache Ant™ can be downloaded from the apache project page http://ant.apache.org + +Aparapi has been tested using 1.7.1 version of Ant, it may well work with earlier versions, but if you encounter issues we recommend updating to at least 1.7.1 before reporting issues. + +Installation is straightforward, just unzip the ant.zip file and ensure that your `ANT_HOME}} environment variable is pointing to your ANT installation and that {{{%ANT_HOME%\bin` is in your path. +``` +C:> set ANT_HOME=C:\progra~1\apache\apache-ant-1.8.1 +C:> set PATH=%PATH%;%ANT_HOME%\bin +``` + +Double check the installation and environment vars. + +``` +ant -version +Apache Ant version 1.7.1 compiled .. +``` + +## AMD APP SDK ## +To compile Aparapi JNI code you need access to OpenCL headers and libraries. The instructions below assume that there is an available AMD APP SDK v2.5 (or later) installed and that your platform supports the required device drivers for your GPU card. + +Install the Catalyst driver first, and then install AMD APP SDK v2.5. + +See http://developer.amd.com/sdks/AMDAPPSDK/pages/DriverCompatibility.aspx for help locating the appropriate driver for your AMD card. Be sure you obtain the catalyst driver that includes the OpenCL™ runtime components. + + * The OpenCL™ runtime is required for executing Aparapi or OpenCL™ on your CPU or GPU, but it is not necessary for building/compiling Aparapi. + * The AMD APP SDK v2.5 is necessary for compiling the Aparapi JNI code against OpenCL™ APIs. + +Once you have a suitable driver, download a copy of AMD APP SDK v2.5 from http://developer.amd.com/sdks/AMDAPPSDK/downloads/Pages/default.aspx. + +Download the installation guide for Microsoft® Windows® (and Linux®) from http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_APP_SDK_Installation_Notes.pdf. Note that if you updating from a previous version of AMD APP SDK (or its predecessor ATI STREAM SDK), first uninstall the previous version. + +The release notes are available here http://developer.amd.com/sdks/AMDAPPSDK/assets/AMD_APP_SDK_Release_Notes_Developer.pdf + +## A C++ compiler ## +For Microsoft® Windows® platforms the JNI build can support either Microsoft® Visual Studio® 2008, 2009 or 2010 compiler or MinGW (Minimal GNU for Windows) from GNU. Now that Visual Studio express is available for free, we would recommend using Visual studio. If you wish to use another compiler then you will have to tweak the com.amd.aparapi.jni/build.xml file to get your compiler to work. +#### Microsoft® Visual Studio® 2008/2010 for 32-bit or 64-bit platforms #### +Aparapi has been tested with various versions of Microsoft® Visual Studio® 2008, 2009 and 2010 including Enterprise, Professional and Express editions, if you encounter any version specific issues please let us know so we can address it and/or update this documentation. + +If you already have Microsoft® Visual Studio® installed you will need to know the location of the compiler and the SDK. These can vary depending upon the platform and version you are using. + +Typically an install results in a Visual Studio install, such as. +c:\Program Files\Microsoft Visual Studio 9.0 + +And an SDK, such as. +c:\Program Files\Microsoft SDKs\Windows\v6.0A + +Note the location of both of these as this information will be needed to configure the com.amd.aparapi.jni\build.property file (later). + +##### For Visual Studio Express 64 bit users ##### +Visual studio express does not include the 64 bit compiler or libraries. You will need to also install the SDK from Microsoft. +[this link should help](http://msdn.microsoft.com/en-us/library/9yb4317s(v=vs.80).aspx) + +#### MinGW – (MINimum Gnu for Windows) #### +As an alternative to installing Microsoft® Visual Studio® we have included support for the MinGW tool chain and Aparapi has been (minimally) tested with this compiler. + +MingGW can be downloaded from http://www.mingw.org/ by following the instructions on their [Getting Started](http://www.mingw.org/wiki/Getting_Started) page. We recommend installing the mingw-get-inst msi installer and just taking the defaults. + +Note the install location as this information will be needed to edit build.xml file and uncomment the line referencing the mingw instal dir. + +Typically the install location is +``` +C:\MinGW +``` + +After a successful build, you will need to ensure that the bin sub directory is in your path before you attempting to run an Aparapi enabled application built using MinGW. MinGW apps require access to MingGW/GNU C++/C runtime at execution time. +``` +set PATH=%PATH%;C:\MinGW\bin +``` +This is one reason the binary distribution is ''not'' built using mingw. +## JUnit ## +The initial Open Source drop includes a suite of JUnit tests for validating bytecode to OpenCL code generation. These tests require JUnit 4. + +Download JUnit from http://www.junit.org/ + +Note the location of your JUnit installation; the location is needed to configure the test\codegen\build.xml file. See the UnitTestGuide page for howto configure the JUnit build. +## Eclipse ## +Eclipse is not required to build Aparapi, however the developers of Aparapi do use Eclipse and have made the Eclipse artifacts (.classpath and .project files) available so that projects can be imported into Eclipse. + +The com.amd.aparapi.jni subproject (containing C++ JNI source) should be imported as a resource project, we do not recommend importing com.amd.aparapi.jni as a CDT project, and we do not recommend trying to configure a CDT build, the existing build.xml files has been customized for multiplatform C++ compilations. +# Building # +Check out the Aparapi SVN trunk: +``` +svn checkout http://aparapi.googlecode.com/svn/trunk +``` + +You will end up with the following files/directories +``` + aparapi/ + com.amd.aparapi/ + src/java/com.amd.aparapi/*.java + build.xml + com.amd.aparapi.jni/ + src/cpp/*.cpp + src/cpp/*.h + build.xml + test/ + codegen/ + src/java/ + com.amd.aparapi/ + com.amd.aparapi.test/ + build.xml + runtime/ + src/java/ + com.amd.aparapi/ + com.amd.aparapi.test/ + build.xml + samples/ + mandel + src/java/com.amd.aparapi.samples.mandel/*.java + build.xml + mandel.sh + mandel.bat + squares/ + src/java/com.amd.aparapi.samples.squares/*.java + build.xml + squares.sh + squares.bat + convolution/ + src/java/com.amd.aparapi.samples.convolution/*.java + build.xml + conv.sh + conv.bat + examples/ + nbody/ + src/java/com.amd.aparapi.nbody/ + build.xml + nbody.sh + nbody.bat + build.xml + README.txt + LICENSE.txt + CREDITS.txt +``` + +## Sub Directories ## +The `com.amd.aparapi` and `com.amd.aparapi.jni` subdirectories contain the source for building and using Aparapi. + +The ant build.xml file, in each folder accept 'clean' and 'build' targets. + +Use the build.xml file at the root of the tree for two purposes: + * To initiate a build of com.amd.aparapi and com.amd.aparapi.jni. + * To create a binary distribution directory and zip file. This zip file is same as those available from the download section of the code.google.com/p/aparapi site. + +## Preparing for your first build ## + +You should only need to edit `com.amd.aparapi.jni\build.xml` file if you wish to use mingw or if you Visual Studio or gcc compiler is in an unusual place. + +Perform a build from the root directory using the following command: +``` +$ ant clean dist +``` + +The jni build will perform some simple tests to check the configuration properties and hopefully also guide you to a possible solution. + +Once your build has completed you should see an additional subdirectory named dist\_windows\_x86 or dist\_windows\_x86\_64 (depending upon your platform type). + * aparapi.jar containing Aparapi classes for all platforms. + * the shared library for your platform (aparapi\_x86.dll or aparapi\_x86\_64.dll). + * an /api subdirectory containing the 'public' javadoc for Aparapi. + * a samples directory containing the source and binaries for the mandel and squares sample projects. + +The root directory also contains either dist\_windows\_x86\_64.zip or dist\_windows\_x86.zip containing a compressed archive of the distribution tree. + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/DeviceProposal.md b/DeviceProposal.md new file mode 100644 index 00000000..94223d77 --- /dev/null +++ b/DeviceProposal.md @@ -0,0 +1,86 @@ +At present the first GPU or CPU device (depending on Kernel.ExecutionMode value) is chosen at execution time. This make it easy to execute simple Kernels, but is problematic when using some advanced feature (barriers, local memory) or for sizing buffers appropriate for the target device. + +I propose that we add API's to allow the developer to specify exactly which device we intend to target. + +In the extension proposal branch we needed to expose a Device class for binding arbitrary OpenCL to a Java interface. I suggest we also be use this to query device information useful for allocating suitable size global buffers/local buffers, and for dispatching Kernel's to specific devices. + +The general pattern would be that we ask Aparapi to give us a Device, probably via a Device factory method. + +Something like:- + +``` + Device device = Device.best(); +``` + +We would also offer other useful factory methods `getBestGPU(), getFirstCPU() getJavaMultiThread(), getJavaSequential()` as well as a method to get all device so that the developer can filter themselves. + +Note that as well as real OpenCL devices we also expose 'pseudo' devices such as JavaMultiThread and Sequential. We might also allow pseudo devices to group multiple devices. So getAllGPUDevices() might return a pseudo device for executing across devices. + +``` + Device chosen=null; + for (Device device: devices.getAll()){ + if (device.getVendor().contains("AMD") && device.isGPU()){ + chosen = device; + break; + } + } +``` + +A Device can be queried (isGPU(), isOpenCL(), isGroup(), isJava(), getOpenCLPlatform(), getMaxMemory(), getLocalSizes()) and may need to be cast to specific types. + +This would allow us to configure buffers. + +``` +Device device = Device.best(); +if (device instanceof OpenCLDevice){ + OpenCLDevice openCLDevice = (OpenCLDevice)device; + char input[] = new char[openCLDevice.getMaxMemory()/4); +} +``` + +We can also use the Device as a factory for creating Ranges. + +``` +Range range = device.createRange2D(width, height); +``` + +This allows the Range to be created with knowledge of the underlying device. So for example device.createRange3D(1024, 1024, 1024, 16, 16, 16) will fail if the device does not allow a local size of (16x16x16). + +A range created using device.createRangeXX() would also capture the device that created it. As if we had + +``` +Range range = device.createRange2D(width, height); +// implied range.setDevice(device); +``` + +This basically means that the Range locks the device that it can be used with. + +So when we have a Kernel. + +``` +Kernel kernel = new Kernel(){ + @Override public void run(){ + ... + } +} +``` + +And we then use + +``` +Device device = Device.firstGPU(); +final char input[] = new char[((OpenCLDevice)device).getMaxMemory()/4); +Kernel kernel = new Kernel(){ + @Override public void run(){ + // uses input[]; + } +}; +range = device.createRange2D(1024, 1024); +kernel.execute(range); +``` + +We have forced execution on the first GPU. Java fallback would still be possible (should we forbid this?). + +``` +kernel.execute( Device.firstGPU().getRange2D(width, height)); +``` \ No newline at end of file diff --git a/Downloads/Aparapi_2014_04_29_Linux64.zip b/Downloads/Aparapi_2014_04_29_Linux64.zip deleted file mode 100644 index 32824fdf..00000000 Binary files a/Downloads/Aparapi_2014_04_29_Linux64.zip and /dev/null differ diff --git a/Downloads/Aparapi_2014_04_29_MacOSX.zip b/Downloads/Aparapi_2014_04_29_MacOSX.zip deleted file mode 100644 index 5be6d85b..00000000 Binary files a/Downloads/Aparapi_2014_04_29_MacOSX.zip and /dev/null differ diff --git a/Downloads/Aparapi_2014_04_29_Win64.zip b/Downloads/Aparapi_2014_04_29_Win64.zip deleted file mode 100644 index 29e5aa9a..00000000 Binary files a/Downloads/Aparapi_2014_04_29_Win64.zip and /dev/null differ diff --git a/Downloads/Aparapi_2014_09_14_Win32.zip b/Downloads/Aparapi_2014_09_14_Win32.zip deleted file mode 100644 index 5a3b3c6c..00000000 Binary files a/Downloads/Aparapi_2014_09_14_Win32.zip and /dev/null differ diff --git a/EmulatingMultipleEntrypointsUsingCurrentAPI.md b/EmulatingMultipleEntrypointsUsingCurrentAPI.md new file mode 100644 index 00000000..4d4f1233 --- /dev/null +++ b/EmulatingMultipleEntrypointsUsingCurrentAPI.md @@ -0,0 +1,236 @@ +# Emulating Multiple Entrypoints Using Existing Aparapi APIs # + +Until we have support for multiple entrypoints in Aparapi, there are some tricks for emulating this feature. + +Follow the proposal for adding multiple entrypoints on this page MultipleEntryPointSupportProposal. + + +Suppose we wanted to create a general `VectorMath` kernel which might expose unary square, squareroot methods and binary addition and subtraction functionality. With our current API limitations we can't easily do this, we can approximate having separate methods by passing a separate arg to dictate the 'function' that we wish to perform. + +``` +class VectorKernel extends Kernel{ + float[] lhsOperand; + float[] rhsOperand; + float[] unaryOperand; + float[] result; + final static int FUNC_ADD =0; + final static int FUNC_SUB =1; + final static int FUNC_SQR =2; + final static int FUNC_SQRT =3; + // other functions + int function; + @Override public void run(){ + int gid = getGlobalId(0){ + if (function==FUNC_ADD){ + result[gid]=lhsOperand[gid]+rhsOperand[gid]; + }else if (function==FUNC_SUB){ + result[gid]=lhsOperand[gid]-rhsOperand[gid]; + }else if (function==FUNC_SQR){ + result[gid]=unaryOperand[gid]*unaryOperand[gid]; + }else if (function==FUNC_ADD){ + result[gid]=sqrt(unaryOperand[gid]); + }else if .... + } +} +``` + +To use this for adding two vectors and then take the sqrt of the result we would use something like.... + +``` +int SIZE=1024; +Range range = Range.create(SIZE); +VectorKernel vk = new VectorKernel(); +vk.lhsOperand = new float[SIZE]; +vk.rhsOperand = new float[SIZE]; +vk.unaryOperand = new float[SIZE]; +vk.result = new float[SIZE]; + +// fill lhsOperand ommitted +// fill rhsOperand ommitted +vk.function = VectorKernel.FUNC_ADD; +vk.execute(range); +System.arrayCopy(vk.result, 0, vk.unaryOperand, 0, SIZE); +vk.function = VectorKernel.FUNC_SQRT; +vk.execute(range); +``` + +This approach is fairly common and I have used it successfully to perform various pipeline stages for calculating FFT's for example. + +Whilst this is functional it is not a great solution. First the API is clumsy. We have to mutate the state of the kernel instance and then re-arrange the arrays manually to chain math operations. We could of course hide all of this behind helper methods. One could imagine for example an implementation which exposes helper `add(lhs, rhs)}}, or {{{sqrt()` which hid all the nasty stuff. + + +``` +class VectorKernel extends Kernel{ + float[] lhsOperand; + float[] rhsOperand; + float[] unaryOperand; + float[] result; + final static int FUNC_ADD =0; + final static int FUNC_SUB =1; + final static int FUNC_SQR =2; + final static int FUNC_SQRT =3; + // other functions + int function; + @Override public void run(){ + int gid = getGlobalId(0){ + if (function==FUNC_ADD){ + result[gid]=lhsOperand[gid]+rhsOperand[gid]; + }else if (function==FUNC_SUB){ + result[gid]=lhsOperand[gid]-rhsOperand[gid]; + }else if (function==FUNC_SQR){ + result[gid]=unaryOperand[gid]*unaryOperand[gid]; + }else if (function==FUNC_ADD){ + result[gid]=sqrt(unaryOperand[gid]); + }else if .... + } + private void binary(int operator, float[] lhs, float[] rhs){ + lhsOperand = lhs; + rhsOperand = rhs; + function=operator; + execute(lhs.length()); + } + public void add(float[] lhs, float[] rhs){ + binary(FUNC_ADD, lhs, rhs); + } + + public void sub(float[] lhs, float[] rhs){ + binary(FUNC_SUB, lhs, rhs); + } + + private void binary(int operator, float[] rhs){ + System.arrayCopy(result, 0, lhsOperand, result.length); + rhsOperand = rhs; + function=operator; + execute(lhsOperand.legth()); + } + + public void add(float[] rhs){ + binary(FUNC_ADD, rhs); + } + + public void sub( float[] rhs){ + binary(FUNC_SUB, rhs); + } + + private void unary(int operator, float[] unary){ + unaryOperand = unary; + function=operator; + execute(unaryOperand.length()); + } + + public void sqrt(float[] unary){ + unary(FUNC_SQRT, unary); + } + + private void unary(int operator){ + System.array.copy(result, 0, unaryOperand, 0, result.length); + function=operator; + execute(unaryOperand.length()); + } + + public void sqrt(){ + unary(FUNC_SQRT); + } + +} +``` + +``` +VectorKernel vk = new VectorKernel(SIZE); +vk.add(copyLhs, copyRhs); // copies args to lhs and rhs operands + // sets function type + // and executes kernel +vk.sqrt(); // because we have no arg + // copies result to unary operand + // sets function type + // execute kernel +``` + +However there is one more objection to this approach, namely that it by default will force unnecessarily buffer copies. + +When the bytecode for the above `Kernel.run()` method is analyzed Aparapi finds bytecode reading from `lhsOperand`, `rhsOperand` and `unaryOperand` arrays/buffers. Obviously at this bytecode analysis stage we can't predict which 'function type' will be used, so on every executions (`Kernel.run()`) Aparapi must copy all three buffers to the GPU. For binary operations this is one buffer copy wasted (the unaryOperand), for the unary operations we copy two buffers unnecessarily (lhsOperand and rhsOperand). We can of course use explicit buffer management to help us reduce these costs. Ideally we add this to our helper methods. + +``` +class VectorKernel extends Kernel{ + float[] lhsOperand; + float[] rhsOperand; + float[] unaryOperand; + float[] result; + final static int FUNC_ADD =0; + final static int FUNC_SUB =1; + final static int FUNC_SQR =2; + final static int FUNC_SQRT =3; + // other functions + int function; + @Override public void run(){ + int gid = getGlobalId(0){ + if (function==FUNC_ADD){ + result[gid]=lhsOperand[gid]+rhsOperand[gid]; + }else if (function==FUNC_SUB){ + result[gid]=lhsOperand[gid]-rhsOperand[gid]; + }else if (function==FUNC_SQR){ + result[gid]=unaryOperand[gid]*unaryOperand[gid]; + }else if (function==FUNC_ADD){ + result[gid]=sqrt(unaryOperand[gid]); + }else if .... + } + private void binary(int operator, float[] lhs, float[] rhs){ + lhsOperand = lhs; + rhsOperand = rhs; + function=operator; + put(lhsOperand).put(rhsOperand); + execute(lhs.length()); + get(result); + } + public void add(float[] lhs, float[] rhs){ + binary(FUNC_ADD, lhs, rhs); + } + + public void sub(float[] lhs, float[] rhs){ + binary(FUNC_SUB, lhs, rhs); + } + + private void binary(int operator, float[] rhs){ + System.arrayCopy(result, 0, lhsOperand, result.length); + rhsOperand = rhs; + function=operator; + put(lhsOperand).put(rhsOperand); + execute(lhsOperand.legth()); + get(result); + } + + public void add(float[] rhs){ + binary(FUNC_ADD, rhs); + } + + public void sub( float[] rhs){ + binary(FUNC_SUB, rhs); + } + + private void unary(int operator, float[] unary){ + unaryOperand = unary; + function=operator; + put(unaryOperand); + execute(unaryOperand.length()); + get(result); + } + + public void sqrt(float[] unary){ + unary(FUNC_SQRT, unary); + } + + private void unary(int operator){ + System.array.copy(result, 0, unaryOperand, 0, result.length); + function=operator; + put(unaryOperand); + execute(unaryOperand.length()); + get(result); + + } + + public void sqrt(){ + unary(FUNC_SQRT); + } + +} +``` \ No newline at end of file diff --git a/ExplicitBufferHandling.md b/ExplicitBufferHandling.md new file mode 100644 index 00000000..4df640d8 --- /dev/null +++ b/ExplicitBufferHandling.md @@ -0,0 +1,248 @@ +Aparapi is designed to shield the Java developer from dealing with the underlying movement of data between the OpenCL host and device. +Aparapi can analyze a kernel's run() method and run-reachable methods to determine which primitive arrays to transfer to the GPU prior to execution, and which arrays to transfer back when the GPU execution is complete. + +Generally this strategy is both clean and performant. Aparapi will attempt to just do the right thing. + +However, occasionally the following code pattern is seen. +``` +final int[] hugeArray = new int[HUGE]; +Kernel kernel= new Kernel(){ + ... // reads/writes hugeArray +}; +for (int loop=0; loop { + out[i] = in[i]*in[i]; + }); +``` + +You will obviously need a Java 8 compatible JDK (https://jdk8.java.net/download.html) in your path. + +We also recommend using IntelliJ which has preliminary support for Java 8 lambda features. You can download the community edition of IntelliJ from http://www.jetbrains.com/idea/ + + + diff --git a/HSAEnablementOfLambdaBranchSidebar.md b/HSAEnablementOfLambdaBranchSidebar.md new file mode 100644 index 00000000..e69de29b diff --git a/HSASidebar.md b/HSASidebar.md new file mode 100644 index 00000000..e69de29b diff --git a/HomePageSuggestions.md b/HomePageSuggestions.md new file mode 100644 index 00000000..e69de29b diff --git a/HowToAddUML.md b/HowToAddUML.md new file mode 100644 index 00000000..5aefe5f1 --- /dev/null +++ b/HowToAddUML.md @@ -0,0 +1,38 @@ +Go to http://www.plantuml.com/plantuml and type in the text for you diagram. + +Hit submit and check out the diagram. + +Once you are happy, so with something like +``` +start +:kernel.execute(range); +if (?) then (first call for this instance) + : Convert Kernel.run() to OpenCL; + note + We also convert all + methods reachable from + kernel.run() + end note + if (?) then (Conversion was successful) + : Compile OpenCL; + : Map compiled OpenCL to this Kernel; + else (Conversion unsuccessful) + endif +else (not first call) +endif +if (?) then (OpenCL mapped for this instance) + : Bind args (send to GPU); + : Execute kernel; +else (false) + : Execute using a Java Thread Pool; +endif +stop +``` + +Paste the resulting URL into the wiki page but append %20as.png at the end of the URL + +`http://www.plantuml.com:80/plantuml/img/BLAHBLAH%20as.png` + +To get this! + +![http://www.plantuml.com:80/plantuml/img/TP5DJiGm38NtbNe7BziD1sWNI8mG4ZzY5Y3M9dNQQDAaYjE1u-CscJ8L8giep_RxyimHGooBvaJ1aRsXRr9pf2gWwwbkoy9eg6vhY0CvgBG9746XjQ1za4V3O1n7T8hgiW0v3HoyErE8y9GcXjbLqk_XTI9tU6vJcVEHqatE1m5Qzg1ovp9_4qUAW-yO0g4QyDCIwE37JJvTkQH7SjtL-1r_GcFZ7NmX0yzA4REURRtDM_Z7oOZDZdTLNd0InbNjihnyR8qX_JPNasNQkStkZvTW6bqMgLHuuJTSgSZgZZuxZZXDul_F0XguCn80XfwXuYKB8NmuljTjbk_JXdDmxOL0omQs4PUQcOth0U4HpmXlWwoWWwFtQrS2vEYd7m00%20&foo=as.png](http://www.plantuml.com:80/plantuml/img/TP5DJiGm38NtbNe7BziD1sWNI8mG4ZzY5Y3M9dNQQDAaYjE1u-CscJ8L8giep_RxyimHGooBvaJ1aRsXRr9pf2gWwwbkoy9eg6vhY0CvgBG9746XjQ1za4V3O1n7T8hgiW0v3HoyErE8y9GcXjbLqk_XTI9tU6vJcVEHqatE1m5Qzg1ovp9_4qUAW-yO0g4QyDCIwE37JJvTkQH7SjtL-1r_GcFZ7NmX0yzA4REURRtDM_Z7oOZDZdTLNd0InbNjihnyR8qX_JPNasNQkStkZvTW6bqMgLHuuJTSgSZgZZuxZZXDul_F0XguCn80XfwXuYKB8NmuljTjbk_JXdDmxOL0omQs4PUQcOth0U4HpmXlWwoWWwFtQrS2vEYd7m00%20&foo=as.png) \ No newline at end of file diff --git a/JavaKernelGuidelines.md b/JavaKernelGuidelines.md new file mode 100644 index 00000000..cd87dfc6 --- /dev/null +++ b/JavaKernelGuidelines.md @@ -0,0 +1,71 @@ +# **Aparapi Java Kernel Guidelines** # +Certain practices can improve the chances of your Java kernel being converted to OpenCL and executing on a GPU. + +The following guidelines/restrictions only apply to the Kernel.run() method and any method reachable from run() (called” run-reachable methods” in this documentation), clearly any methods executed via a normal Java execution path will not be subject to these restrictions. + +Some restrictions/guidelines may be removed or augmented in a future Aparapi releases. + +## Data Types ## + * Only the Java primitive data types boolean, byte, short, int, long, and float and one-dimensional arrays of these primitive data types are supported by Aparapi.  + * Aparapi support for the primitive data type double will depend on your graphics card, driver, and OpenCL version. Aparapi will query the device/platform to determine if double is supported (at runtime). If your platform does not support double, Aparapi will drop back to (Java Thread Pool) (JTP) mode. + * The primitive data type char is not supported. +## Fields ## + * Elements of primitive array fields can be read from kernel code. + * Elements of primitive array fields can be written to by kernel code. + + * Note that Java creates 'hidden' fields for captured final primitive arrays (from anonymous inner classes) and they can be accessed as if they were fields of the kernel. + * Primitive scalar fields can only be read by the kernel code. Because kernel run-reachable methods execute in parallel in an indeterminate order, any reliance on the result of modifications to primitive scalar fields is discouraged even when executing in Java Thread Pool mode. + * Static final fields can be read from kernel code. + * Static non-final fields are not supported for either read or write. Try to make them final. +## Arrays ## + * Only one-dimensional arrays are supported. + * Arrays cannot be aliased either by direct local assignment or by passed arguments to other methods. + * Java 5’s extended 'for' syntax `for (int i: arrayOfInt){} ` is not supported, because it causes a shallow copy of the original array under the covers. + +## Methods ## + * References to or through a Java Object other than your kernel instance will cause Aparapi to abandon attempting to create OpenCL (note the following exceptions). + * There are a few very specific exceptions to the above rule to allow accesses through getters/setters of objects held in arrays of objects referenced from the kernel code. + * Static methods are not supported by Aparapi. + * Recursion is not supported, whether direct or indirect. Aparapi tries to detect this recursion statically, but the developer should not rely on Aparapi to do so. + * Methods with varargs argument lists are not supported by Aparapi. + * Overloaded methods (i.e. methods with the same name but different signatures) are not supported by Aparapi. OpenCL is C99 based so we are constrained by OpenCL's lack of support for overloading. + * The kernel base class contains wrappers around most of the functions offered by `java.lang.Math`.  When run in a thread pool these wrappers delegate back to `java.lang.Math` when executing in OpenCL they translate to OpenCL equivalents. +## Other Restrictions ## + * Exceptions are not supported (no throw, catch. or finally). + * New is not supported either for arrays or objects + * Synchronized blocks and synchronized methods are not supported. + * Only simple loops and conditionals are supported; switch, break, and continue are not supported. + * A variable cannot have its first assignment be the side effect of an expression evaluation or a method call.  For example, the following will not be translated to run on the GPU. +``` +     int foo(int a) { +        // . . . +     } +  +     public void run() { +       int z; +       foo(z = 3); +     } +``` +This should be regarded as an error which needs to be addressed, as a workaround, explicitly initialize variables (even to 0) when declared. + +## Beware Of Side Effects ## + * OpenCL is C99-based and as such the result of expressions depending on side effects of other expressions can differ from what one might expect from Java, please avoid using code that assumes Java's tighter rules.  Generally code should be as simple as possible. + +For example, although Java explicitly defines +``` +arra[i++] = arrb[i++]; +``` +  +to be equivalent to +``` +arra[i] = arrb[i+1]; +i += 2; +``` + +The C99/OpenCL standard does not define this and so the result would be undefined. + +## Runtime Exceptions ## + * When run on the GPU, array accesses will not generate an `ArrayIndexOutOfBoundsException`.  Instead the behavior will be unspecified. + * When run on the GPU, ArithmeticExceptions will not be generated, for example with integer division by zero. Instead the behavior will be unspecified. + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/LICENSE.TXT b/LICENSE.TXT deleted file mode 100644 index 3c729522..00000000 --- a/LICENSE.TXT +++ /dev/null @@ -1,38 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Securitys website at http://www.bis.doc.gov/. - -*/ - diff --git a/LIbraryAgentDuality.md b/LIbraryAgentDuality.md new file mode 100644 index 00000000..4e165aa3 --- /dev/null +++ b/LIbraryAgentDuality.md @@ -0,0 +1,25 @@ +# What are all these check-ins referring to JVMTI agents? # + +If you have been tracking Aparapi SVN checkins you will have noticed a bunch of changes to JNI code. I just finished arranging for aparapi libraries (.dll or .so) to be able to be loaded as JVMTI agent. Now (assuming library is in ${APARAPI\_DIR}) we can either launch using the traditional... + +`java –Djava.library.path=${APARAPI_DIR} –classpath ${APARAPI_DIR}/aparapi.jar;my.jar mypackage.MyClass` + +or ... + +`java –agentpath=${APARAPI_DIR}/aparapi_x86_64.dll –classpath ${APARAPI_DIR}/aparapi.jar;my.jar mypackage.MyClass` + +So the dll/so is now both ‘just a library’ and a JVMTI agent. + +# When would I need an agent? # + +Prevously Aparapi loaded classes that it needed to convert to OpenCL using `java.lang.Class.getResourceAsStream()`. This only works if we have a jar, or if the classes are on the filesystem somewhere. This approach will not work for 'synthetically generated classes'. + +There are applications/frameworks which create synthetic classes (at runtime) which would not normally be useable by Aparapi. + +Specifically (and significantly) Java 8 uses synthetic classes to capture args (closure captures) so they can be passed to the final lambda implementation. We needed a way to allow Aparapi to access bytecode of any class, not just those in jars or on the disk. + +A JVMTI agent can register an interest in loaded classes (loaded by the classloader)do this. So when we use the aparapi library in 'agent mode' it caches all bytes for all loaded classes (yes we could filter by name) and puts this information in a common data structure (should be a map but is a linked list at present). + +By adding a new OpenCLJNI.getBytes(String) JNI method, Aparapi can now retrieve the bytes for any loaded classes, out of this cache. + +So this combined with our ability to parse classes which don’t have line number information should really enable Aparapi to be used with Scala/JRuby/Groovy or other dynamic scripting languages which create classes on the fly. \ No newline at end of file diff --git a/LocalMemoryAndBarrierProposal.md b/LocalMemoryAndBarrierProposal.md new file mode 100644 index 00000000..5b293e64 --- /dev/null +++ b/LocalMemoryAndBarrierProposal.md @@ -0,0 +1,165 @@ +# DRAFT : I am tinkering with this doc as of 12/5/2011 # + +There is a discussion list here http://groups.google.com/group/aparapi-discuss/browse_thread/thread/c544ffd2aec7ff50 for this as well. + +At present all Aparapi data is considered global. Primitive arrays (such as `int buf[]`) are mapped to `__global` pointers (such as `__global int *buf`). + +Although this makes Aparapi easy to use (especially to Java developers not used to being exposed to tiered memory hierarchies), it does limit the ability of the 'power developer' wishing to extract more performance from Aparapi on the GPU. + + + +This [page](http://www.amd.com/us/products/technologies/stream-technology/opencl/pages/opencl-intro.aspx?cmpid=cp_article_2_2010) from AMD's website shows the different types of memory that OpenCL programmers need to worry about. + +![http://www.amd.com/PublishingImages/Public/Graphic_Illustrations/375WJPEG/47039A_OpenCLMemoryModel_375W.jpg](http://www.amd.com/PublishingImages/Public/Graphic_Illustrations/375WJPEG/47039A_OpenCLMemoryModel_375W.jpg) + +Curently in Aparapi our primitive Java arrays are stored in host memory and are copied to Global memory (the RAM of the GPU card). + +Because local memory is 'closer' to the compute devices, the use of local memory on OpenCL can lead to much more performant code as the cost of fetching from local memory is much lower. + +--- + +## Some History ## + +In the alpha version of Aparapi we allowed the @Local annotation to be applied to primitive arrays (not sadly captured final fields). + +``` +int globalArray[] = new int[512]; +Kernel kernel = new Kernel(){ + @Local int localArray[] = new int[64]; + @Override public void run(){ + localArray[getLocalId())=getLocalId(); + localBarrier(); + globalArray[getGlobalId()] = localArray[getLocalId()); + + } +} +``` + +Sure the code is kind of nonesense, but it did show that we could declare local buffers, create them and use local barriers to wait for the group to all complete and then use the local buffers. + +The main issues with the alpha version were: + 1. The size of any local buffers needed to be proportional to the groupsize. + 1. The size of group was not known until the kernel is executed + 1. It was tricky to emulate groups in Java and to make local barriers work, these all cost cycles in the Java version and usually resulted in performance loss. + +The solution we came to in alpha was to have a callback (sadly called `setSizes(int globalSize, int localSize)`) in the base Kernel class. This callback was called we were confident we knew what globalSize and localSize were (we know the algorithm used by AMD OpenCL runtime which is based on common AMD device configurations). The kernel writer was expected to use this callback to create local buffers. + +``` +int globalArray[] = new int[512]; +Kernel kernel = new Kernel(){ + @Local int localArray[] = null; + @Override public void setSizes(int _globalSize, int _localSize){ + localArray = new int[_localSize]; + super.setSize(_globalSize, _localSize); + } + @Override public void run(){ + localArray[getLocalId())=getLocalId(); + localBarrier(); + globalArray[getGlobalId()] = localArray[getLocalId()); + + } +} +``` + +This worked well for GPU (for single dimension executions - remember we don't map `get_local_size(1)` or `get_local_size(2)`), but we probably should. There is a separate AccessingMultiDimNDRangeProposal page looking into that. + +For JTP mode (fallback) we can honor the callback, we can create a barrier (across all threads - so a group was basically always the # of cores), but this just slows JTP execution. + +Note also the rookie API mistakes. + + 1. The implementer was obliged to invoke `super.setSizes()`, that was a big mistake. + 1. The name `setSizes` was bad, it should have been `sizeCallback()` or something + 1. Should have been `protected`. + +These three bad API decisions :) meant lots of bugs. Folk would override and forget to call `super.setSizes()` also because it was public folk would call `kernel.setSizes(1024, 23)` assuming this would set global and localsize and finally people would override but change the value passed down to `super.setSizes()`. This was all the result of these bad API decisions. + +Before open sourcing I removed all this code (well remnants remain in some KernelRunner static fields and in the JNI layer bitfields for args), with the idea of addressing it again later when we had a better idea whether people would want to use local memory and or barriers. + +Now might be that time ;) + +So this page is intended to look at this problem again and hopefully come up with a better solution. + + +--- + + +Some proposals. + +One proposal of course is to retread the alpha steps and reintroduce the notion of @Local annotations (for Kernel buffers - won't work for captured final fields used by anonymous inner classes). + +We will cleanup the callback name, undo the API mistakes and allow code such as this. + +``` +int globalArray[] = new int[512]; +Kernel kernel = new Kernel(){ + @Local int localArray[] = null; + @Override protected void preExecuteCallback(int _globalSize, int _localSize){ + localArray = new int[_localSize]; + } + @Override public void run(){ + localArray[getLocalId())=getLocalId(); + localBarrier(); + globalArray[getGlobalId()] = localArray[getLocalId()); + + } +} +``` + + +Another alternate is to use the annotations themselves to size the local buffers. + +They can either use absolute values or can use multipliers/divisors based on other runtime OpenCL values. + +For example + +` @Local(size=512) int localArray[]; ` + +This is an absolute buffer local array which is to be 512\*sizeof(int). + +If you wondering why not just use `@Local int[] localArray = new int[512];` for this then remember that when we execute on the GPU we don't pass the array, we just tell the OpenCL how big the buffer is. If we declared the buffer as above and the code was actually executed on the GPU the array would never be used. If we fallback in JTP mode the KernelRunner can just allocate the actual array for us. + +It is common for local buffers to be some function of the group size or local size. In the example above we create a buffer 1:1 mapped to this. + +We could just use 'scale' properties attached to the @Local annotation to signal this ratio. Either as a multiplier + +``` + // Provide a localArray which will be 2*get_local_size(0) + @Local(localMultiplier=2) int localArray[]; +``` + +or as a divisor +``` + // Provide a localArray which will be get_local_size(0)/2 + @Local(localDivisor=2) int localArray[]; +``` + +Then just prior to execution the runtime can size all local buffers accordingly. + +## Latest thoughts ## +After discussions with some OpenCL guru's I am rethinking the 'ask' here. All of the design decisions so far were based on the notion that it is possible to predict the value returned by get\_group\_size + +From [clEnqueuNDRangeKernel](http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueNDRangeKernel.html) we get the following definitions + +### `work_dim` ### +> The number of dimensions used to specify the global work-items and work-items in the work-group. work\_dim must be greater than zero and less than or equal to `CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS`. + +### `global_work_offset` ### +> global\_work\_offset can be used to specify an array of work\_dim unsigned values that describe the offset used to calculate the global ID of a work-item. If global\_work\_offset is NULL, the global IDs start at offset (0, 0, ... 0). + +### `global_work_size` ### +> Points to an array of work\_dim unsigned values that describe the number of global work-items in work\_dim dimensions that will execute the kernel function. The total number of global work-items is computed as `global_work_size[0] *...* global_work_size[work_dim - 1]`. + +### `local_work_size` ### +> Points to an array of work\_dim unsigned values that describe the number of work-items that make up a work-group (also referred to as the size of the work-group) that will execute the kernel specified by kernel. The total number of work-items in a work-group is computed as `local_work_size[0] *... * local_work_size[work_dim - 1]`. The total number of work-items in the work-group must be less than or equal to the `CL_DEVICE_MAX_WORK_GROUP_SIZE` value specified in table of OpenCL Device Queries for clGetDeviceInfo and the number of work-items specified in local\_work\_size[0](0.md),... local\_work\_size[- 1](work_dim.md) must be less than or equal to the corresponding values specified by `CL_DEVICE_MAX_WORK_ITEM_SIZES[0],.... CL_DEVICE_MAX_WORK_ITEM_SIZES[work_dim - 1]`. The explicitly specified local\_work\_size will be used to determine how to break the global work-items specified by global\_work\_size into appropriate work-group instances. If local\_work\_size is specified, the values specified in global\_work\_size[0](0.md),... global\_work\_size[- 1](work_dim.md) must be evenly divisible by the corresponding values specified in `local_work_size[0],... local_work_size[work_dim - 1]`. + +> `local_work_size` can also be a `NULL` value in which case the OpenCL implementation will determine how to be break the global work-items into appropriate work-group instances. + + + + + + + + + + diff --git a/MultipleEntryPointSupportProposal.md b/MultipleEntryPointSupportProposal.md new file mode 100644 index 00000000..0eda0d09 --- /dev/null +++ b/MultipleEntryPointSupportProposal.md @@ -0,0 +1,419 @@ +# The Current Single Entrypoint World # + +At present Aparapi allows us to dispatch execution to a single 'single entry point' in a Kernel. Essentially for each `Kernel` only the overridden `Kernel.run()` method can be used to initiate execution on the GPU. + +Our canonical example is the 'Squarer' Kernel which allows us to create squares for each element in an input array in an output array. + +``` +Kernel squarer = new Kernel(){ + @Overide public void run(){ + int id = getGlobalId(0); + out[id] = in[id] * in[id]; + } +}; +``` + +If we wanted a vector addition Kernel we would have to create a whole new Kernel. + +``` +Kernel adder = new Kernel(){ + @Overide public void run(){ + int id = getGlobalId(0); + out[id] = in[id] * in[id]; + } +}; +``` + +For us to square and then add a constant we would have to invoke two kernels. Or of course create single SquarerAdder kernel. + +See this page [EmulatingMultipleEntrypointsUsingCurrentAPI](EmulatingMultipleEntrypointsUsingCurrentAPI.md) for ideas on how to emulate having multiple methods, by passing data to a single `run()` method. + + +# Why can't Aparapi just allow 'arbitary' methods # + +Ideally we would just expose a more natural API, one which allows us to provide specific methods for each arithmetic operation. + +Essentially + +``` +class VectorKernel extends Kernel{ + public void add(); + public void sub(); + public void sqr(); + public void sqrt(); +} +``` + +Unfortunately this is hard to implement using Aparapi. There are two distinct problems, both at runtime. + + 1. How will Aparapi know which of the available methods we want to execute when we call `Kernel.execute(range)`? + 1. On first execution how does Aparapi determine which methods **might** be entrypoints and are therefore need to be converted to OpenCL? + + +The first problem can be solved by extending `Kernel.execute()` to accept a method name + +``` +kernel.execute(SIZE, "add"); +``` + +This is the obvious solution, but really causes maintenence issues int that it trades compile time reporting for a runtime errors. If a developer mistypes the name of the method, :- + +``` +kernel.execute(SIZE, "sadd"); // there is no such method +``` + +The code will compile perfectly, only at runtime will we detect that there is no such method. + +## An aside ## +Maybe the new Java 8 method reference feature method might help here. In the paper below Brian Goetz talks about a double-colon syntax (Class::Method) for directly referencing a method which is presumably checked at compile time. + +So presumably + +``` +kernel.execute(SIZE, VectorKernel::add); +``` + +Would compile just fine, whereby +``` +kernel.execute(SIZE, VectorKernel::sadd); +``` + +Would yield a compile time error. + +See [Brian Goetz's excellent Lambda documentation](http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-4.html) + +## back from Aside ## + +The second problem (knowing which methods need to be converted to OpenCL) can probably be solved using an Annotation. +``` +class VectorKernel extends Kernel{ + @EntryPoint public void add(); + @EntryPoint public void sub(); + @EntryPoint public void sqr(); + @EntryPoint public void sqrt(); + public void nonOpenCLMethod(); +} +``` + +Here the `@EntryPoint` annotation allows the Aparapi runtime to determine which methods need to be exposed. + +# My Extension Proposal # + +Here is my proposal. Not only does it allow us to reference multiple entryoints, but I think it actually improves the single entrypoint API, albeit at the cost of being more verbose. + +## The developer must provide an API interface ## + +First I propose that we should ask the developer to provide an interface for all methods that we wish to execute on the GPU (or convert to OpenCL). + +``` +interface VectorAPI extends AparapiAPI { + public void add(Range range); + public void sub(Range range); + public void sqrt(Range range); + public void sqr(Range range); +} +``` + +Note that each API takes a `Range`, this will make more sense in a moment. + +## The developer provides a bound implementation ## + +Aparapi should provide a mechanism for mapping the proposed implementation of the API to it's implementation. + +Note the weasel words here, this is not a conventional implementation of an interface. We will use an annotation (`@Implements(Class class)`) to provide the binding. + + +``` +@Implements(VectorAPI.class) class Vector extends Kernel { + public void add(RangeId rangeId){/*implementation here */} + public void sub(RangeId rangeId){/*implementation here */} + public void sqrt(RangeId rangeId){/*implementation here */} + public void sqr(RangeId rangeId){/*implementation here */} + public void public void nonOpenCLMethod(); +} +``` + +## Why we can't the implementation just implement the interface? ## + +This would be ideal. Sadly we need to intercept a call to say VectorAPI.add(Range) and dispatch to the resulting Vector.add(RangeId) instances. If you look at the signatures, the interface accepts a Range as it's arg (the range over which we intend to execute) whereas the implementation (either called by JTP threads or GPU OpenCL dispatch) receives a RangeId (containing the unique globalId, localId, etc fields). At the very end of this page I show a strawman implementation of a sequential loop implementation. + +## So how do we get an implementation of VectorAPI ## + +We instantiate our Kernel by creating an instance using `new`. We then ask this instance to create an API instance. Some presumably java.util.Proxy trickery will create an implementation of the actual instance, backed by the Java implementation. + +So execution would look something like. +``` +Vector kernel = new Vector(); +VectorAPI kernelApi = kernel.api(); +Range range = Range.create(SIZE); +kernalApi.add(range); +``` + +So the Vector instance is a pure Java implementation. The extracted API is the bridge to the GPU. + +Of course then we can also execute using an inline call through `api()` + +``` +Vector kernel = new Vector(); +Range range = Range.create(SIZE); +kernel.api().add(range); +kernel.api().sqrt(range); +``` + +or even expose `api` as public final fields + +``` +Vector kernel = new Vector(); +Range range = Range.create(SIZE); +kernel.api.add(range); +kernel.api.sqrt(range); +``` + +# How would our canonical Squarer example look # + +``` +interface SquarerAPI extends AparapiAPI{ + square(Range range); +} + +@Implement(SquarerAPI) class Squarer extends Kernel{ + int in[]; + int square[]; + public void square(RangeId rangeId){ + square[rangeId.gid] = in[rangeId.gid]*in[rangeId.gid]; + } +} +``` + +Then we execute using + +``` +Squarer squarer = new Squarer(); +// fill squarer.in[SIZE] +// create squarer.values[SIZE]; + +squarer.api().square(Range.create(SIZE)); + +``` + +# Extending this proposal to allow argument passing # + +Note that we have effectively replaced the use of the 'abstract' `squarer.execute(range)` with the more concrete `squarer.api().add(range)`. + +Now I would like to propose that we take one more step by allowing us to pass arguments to our methods. + +Normally Aparapi captures buffer and field accesses to create the args that it passes to the generated OpenCL code. In our cannonical squarer example the `in[]` and `square[]` buffers are captured from the bytecode and passed (behind the scenes) to the OpenCL. + +TODO: Add generated OpenCl code to show what this looks like. + +However, by exposing the actual method we want to execute, we could also allow the API to accept parameters. + +So our squarer example would go from +``` +interface SquarerAPI extends AparapiAPI{ + square(Range range); +} + +@Implement(SquarerAPI) class Squarer extends Kernel{ + int in[]; + int square[]; + public void square(RangeId rangeId){ + square[rangeId.gid] = in[rangeId.gid]*in[rangeId.gid]; + } +} + + +Squarer squarer = new Squarer(); +// fill squarer.in[SIZE] +// create squarer.values[SIZE]; + +squarer.api().square(Range.create(SIZE)); + +``` + +to +``` +interface SquarerAPI extends AparapiAPI{ + square(Range range, int[] in, int[] square); +} + +@Implement(SquarerAPI) class Squarer extends Kernel{ + public void square(RangeId rangeId, int[] in, int[] square){ + square[rangeId.gid] = in[rangeId.gid]*in[rangeId.gid]; + } +} + + +Squarer squarer = new Squarer(); +int[] in = // create and fill squarer.in[SIZE] +int[] square = // create squarer.values[SIZE]; + +squarer.api().square(Range.create(SIZE), in, result); + +``` + +I think that this makes Aparapi look more conventional. It also allows us to allow overloading for the first time. + +``` +interface SquarerAPI extends AparapiAPI{ + square(Range range, int[] in, int[] square); + square(Range range, float[] in, float[] square); +} + +@Implement(SquarerAPI) class Squarer extends Kernel{ + public void square(RangeId rangeId, int[] in, int[] square){ + square[rangeId.gid] = in[rangeId.gid]*in[rangeId.gid]; + } + public void square(RangeId rangeId, float[] in, float[] square){ + square[rangeId.gid] = in[rangeId.gid]*in[rangeId.gid]; + } +} + + +Squarer squarer = new Squarer(); +int[] in = // create and fill squarer.in[SIZE] +int[] square = // create squarer.values[SIZE]; + +squarer.api().square(Range.create(SIZE), in, result); +float[] inf = // create and fill squarer.in[SIZE] +float[] squaref = // create squarer.values[SIZE]; + +squarer.api().square(Range.create(SIZE), inf, resultf); + +``` + + + +--- + +test harness +``` +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + + +public class Ideal{ + + public static class OpenCLInvocationHandler implements InvocationHandler { + Object instance; + OpenCLInvocationHandler(Object _instance){ + instance = _instance; + } + @Override public Object invoke(Object interfaceThis, Method interfaceMethod, Object[] interfaceArgs) throws Throwable { + Class clazz = instance.getClass(); + + Class[] argTypes = interfaceMethod.getParameterTypes(); + argTypes[0]=RangeId.class; + Method method = clazz.getDeclaredMethod(interfaceMethod.getName(), argTypes); + + + if (method == null){ + System.out.println("can't find method"); + }else{ + RangeId rangeId = new RangeId((Range)interfaceArgs[0]); + interfaceArgs[0]=rangeId; + for (rangeId.wgid = 0; rangeId.wgid { + Range1DId(T _r){ + r = _r; + } + T r; + + int wgid, wlid, wgsize, wlsize, wgroup; + } + + static class RangeId extends Range1DId{ + RangeId(Range r){ + super(r); + } + } + + static class Range2DId extends Range1DId{ + Range2DId(Range2D r){ + super(r); + } + + int hgid, hlid, hgsize, hlsize, hgroup; + } + + + + + + static T create(Object _instance, Class _interface) { + OpenCLInvocationHandler invocationHandler = new OpenCLInvocationHandler(_instance); + T instance = (T) Proxy.newProxyInstance(Ideal.class.getClassLoader(), new Class[] { + _interface, + + }, invocationHandler); + return (instance); + + } + + + + public static class Squarer{ + interface API { + public API foo(Range range, int[] in, int[] out); + public Squarer dispatch(); + + } + + public API foo(RangeId rangeId, int[] in, int[] out) { + out[rangeId.wgid] = in[rangeId.wgid]*in[rangeId.wgid]; + return(null); + } + } + + /** + * @param args + */ + public static void main(String[] args) { + + Squarer.API squarer = create(new Squarer(), Squarer.API.class); + int[] in = new int[] { + 1, + 2, + 3, + 4, + 5, + 6 + }; + int[] out = new int[in.length]; + Range range = new Range(in.length); + + squarer.foo(range, in, out); + + for (int s:out){ + System.out.println(s); + } + + } + +} +``` \ No newline at end of file diff --git a/NewFeatures.md b/NewFeatures.md new file mode 100644 index 00000000..93c13b97 --- /dev/null +++ b/NewFeatures.md @@ -0,0 +1,259 @@ +# **New Features** # +Aparapi has two new, especially useful features: + * Explicit Buffer Management for minimizing buffer transfers + * Kernel access to objects held in arrays +## Minimizing Buffer Transfers ## +### Explicit Buffer Management ### +Aparapi is designed to shield the Java developer from dealing with the underlying movement of data between the OpenCL host and device. +Aparapi can analyze a kernel's run() method and run-reachable methods to determine which primitive arrays to transfer to the GPU prior to execution, and which arrays to transfer back when the GPU execution is complete. + +Generally this strategy is both clean and performant. Aparapi will attempt to just do the right thing. + +However, occasionally the following code pattern is seen. +``` +final int[] hugeArray = new int[HUGE]; +final int[] done = new int[]{0}; +Kernel kernel= new Kernel(){ + ... // reads/writes hugeArray and writes to done[0] when complete +}; +done[0]=0; +while (done[0] ==0)){ + kernel.execute(HUGE); +} +``` + +This is a common pattern in reduce stages of map-reduce type problems. Essentially the developer wants to keep executing a kernel until some condition is met. For example, this may be seen in bitonic sort implementations and various financial applications. + +From the code it can be seen that the kernel reads and writes `hugeArray[]` array and uses the single item `done[]` array to indicate some form of convergence or completion. + +Unfortunately, by default Aparapi will transfer `done[]` and `hugeArray[]` to and from the GPU device each time `Kernel.execute(HUGE)` is executed. + +To demonstrate which buffers are being transfered, these copies are shown as comments in the following version of the code. +``` +final int[] hugeArray = new int[HUGE]; +final int[] done = new int[]{0}; +Kernel kernel= new Kernel(){ + ... // reads/writes hugeArray and writes to done[0] when complete +}; +done[0]=0; +while (done[0] ==0)){ + // Send done[] to GPU + // Send hugeArray[] to GPU + kernel.execute(HUGE); + // Fetch done[] from GPU + // Fetch hugeArray[] from GPU +} +``` + +Further analysis of the code reveals that `hugeArray[]` is not accessed by the loop containing the kernel execution, so Aparapi is performing 999 unnecessary transfers to the device and 999 unnecessary transfers back. + +Only two transfers of `hugeArray[]` are needed; one to move the initial data to the GPU and one to move it back after the loop terminates. + +The `done[]` array is accessed during each iteration (although never written to within the loop), so it does needs to be transferred back for each return from Kernel.execute(), however, it only needs to be sent once. + +Clearly it is better to avoid unnecessary transfers, especially of large buffers like `hugeArray[]`. + +A new Aparapi feature allows the developer to control these situations and explicitly manage transfers. + +To use this feature first set the mode to explicit, using the `kernel.setExplicit(true)` method, and then requests transfers using either `kernel.put()` or `kernel.get()`. `Kernel.put()` forces a transfer to the GPU device and `Kernel.get()` transfers data back. + +The following code illustrates the use of these new explicit buffer management APIs. +``` +final int[] hugeArray = new int[HUGE]; +final int[] done = new int[]{0}; +Kernel kernel= new Kernel(){ + ... // reads/writes hugeArray and writes to done[0] when complete +}; +kernel.setExplicit(true); +done[0]=0; +kernel.put(done); +kernel.put(hugeArray); +while (done[0] ==0)){ + kernel.execute(HUGE); + kernel.get(done); +} +kernel.get(hugeArray); +``` + +Note that marking a kernel as explicit and failing to request the appropriate transfer is a programmer error. + +We deliberately made `Kernel.put(…)`, `Kernel.get(…)` and `Kernel.execute(range)` return an instance of the executing kernel to allow these calls be chained. Some may find this [fluent](http://en.wikipedia.org/wiki/Fluent_interface) style API more expressive. +``` +final int[] hugeArray = new int[HUGE]; +final int[] done = new int[]{0}; +Kernel kernel= new Kernel(){ + ... // reads/writes hugeArray and writes to done[0] when complete +}; +kernel.setExplicit(true); +done[0]=0; +kernel.put(done).put(hugeArray); // chained puts +while (done[0] ==0)){ + kernel.execute(HUGE).get(done); // chained execute and put +} +kernel.get(hugeArray); +``` + +### An alternate approach for loops containing a single kernel.execute(range) call. ### +One variant of code which would normally suggest the use of Explicit Buffer Management can be handled differently. For cases where `Kernel.execute(range)` is the sole statement inside a loop and where the iteration count is known prior to the first iteration we offer an alternate (hopefully more elegant) way of minimizing buffer transfers. + +So for cases like:- +``` +final int[] hugeArray = new int[HUGE]; +Kernel kernel= new Kernel(){ + ... // reads/writes hugeArray +}; + +for (int pass=0; pass<1000; pass++){ + kernel.execute(HUGE); +} +``` + +The developer can request that Aparapi perform the outer loop rather than coding the loop. This is achieved explicitly by passing the iteration count as the second argument to `Kernel.execute(range, iterations)`. + +Now any form of code that looks like :- +``` +int range=1024; +int loopCount=64; +for (int passId=0; passId{ + @Kernel("{\n"// + + " const size_t id = get_global_id(0);\n"// + + " out[id] = in[id]*in[id];\n"// + + "}\n")// + public Squarer square(// + Range _range,// + @GlobalReadOnly("in") float[] in,// + @GlobalWriteOnly("out") float[] out); + } +``` + +This describes the API we wish to bind to a set of kernel entrypoints (here we only have one, but we could have many). + +Then you 'realize' the interface by asking a device to create an implementation of the interface. Device is a new Aparapi class which represents a GPU or CPU OpenCL device. So here we are asking for the first (default) GPU device to realize the interface. +``` + Squarer squarer = Device.firstGPU(Squarer.class); +``` + +Now you can call the implementation directly with a Range. +``` + squarer.square(Range.create(in.length), in, out); +``` + +I think that we will have the easiest OpenCL binding out there... + + +Following some conversations/suggestions online +http://a-hackers-craic.blogspot.com/2012/03/aparapi.html we could also offer the ability to provide the OpenCL source from a file/url course using interface level Annotations. + +So we could allow. +``` + @OpenCL.Resource("squarer.cl"); + interface Squarer extends OpenCL{ + public Squarer square(// + Range _range,// + @GlobalReadOnly("in") float[] in,// + @GlobalWriteOnly("out") float[] out); + } +``` + +Or if the text is on-hand at compile time in a single constant string + +``` + @OpenCL.Source("... opencl text here"); + interface Squarer extends OpenCL{ + public Squarer square(// + Range _range,// + @GlobalReadOnly("in") float[] in,// + @GlobalWriteOnly("out") float[] out); + } +``` + +Finally to allow for creation of dynamicl OpenCL (good for FFT's of various Radii). +``` + String openclSource = ...; + Squarer squarer = Device.firstGPU(Squarer.class, openclSource); +``` \ No newline at end of file diff --git a/Notes.txt b/Notes.txt deleted file mode 100644 index fd9aca63..00000000 --- a/Notes.txt +++ /dev/null @@ -1,3 +0,0 @@ -Maybe we can use Java 7's method handles for this? -http://java.sun.com/developer/technicalArticles/DynTypeLang/ - diff --git a/PossibleAparapiLambdaSyntaxOptions.md b/PossibleAparapiLambdaSyntaxOptions.md new file mode 100644 index 00000000..0f2f81f2 --- /dev/null +++ b/PossibleAparapiLambdaSyntaxOptions.md @@ -0,0 +1,138 @@ +# Introduction # + +Now that Java 8 is nearly upon us and HSA enabled Aparapi 'lambda' branch is usable (though in no way complete) I figured we could use this page to discuss the 'programming model' we might prefer for Aparapi, and contrast with the API's for the new Java 8 lambda based stream APIs. + +## Converting between Aparapi HSA + Java 8 enabled Aparapi ## + +Our **hello world** app has always been the ''vector add''. In classic Aparapi we could transform + +``` +final float inA[] = .... // get a float array from somewhere +final float inB[] = .... // get a float from somewhere + // assume (inA.length==inB.length) +final float result = new float[inA.length]; + +for (int i=0; i result[i]=intA[i]+inB[i]); +``` + +Note that the closest Java 8 construct is + +``` +IntStream.range(0, result.length).parallel().forEach(i-> result[i]=intA[i]+inB[i]); +``` + +Aparapi and Java 8 stream API's both use IntConsumer as the lambda type. So you can reuse the lambda. + +``` +IntConsumer lambda = i-> result[i]=intA[i]+inB[i]; + +IntStream.range(0, result.length).parallel().forEach(lambda); +Device.hsa().forEach(result.length, lambda); +``` + +Exposing the **Deviceness** of this was a conscious effort. We may also hide it completely. + +``` +IntConsumer lambda = i-> result[i]=intA[i]+inB[i]; + +IntStream.range(0, result.length).parallel().forEach(lambda); +Aparapi.forEach(result.length, lambda); +``` + +I am toying with providing an API which maps more closely to the Stream API from Java 8. + +Maybe +``` +IntStream.range(0, result.length).parallel().forEach(lambda); +Aparapi.range(0, result.length).parallel().forEach(lambda); +``` + +This way users can more readily swap between the two. + +For collections/arrays in Aparapi we can also offer + +``` +T[] arr = // get an array of T from somewhere +ArrayList list = // get an array backed list of T from somewhere + +Aparapi.range(arr).forEach(t -> /* do something with each T */); +``` + +We can create special cases. Say for mutating images +``` +BufferedImage in, out; +Aparapi.forEachPixel(in, out, rgb[] -> rgb[0] = 0 ); +``` + +We may also need select operations for associative operations + +``` +class Person{ + int age; + String first; + String last; +}; + +Aparapi.selectOne(Person[] people, (p1,p2)-> p1.age>p2.age?p1:p2 ); + +``` + +## A case for map reduce ## + + +A mapper maps from one type to another. Possibly by extracting state. Here is a mapper which maps each String in an array of Strings to its length. + +As if the mapper was +``` +interface mapToInt{ int map(T v); } +``` + +Here it is in action. +``` +Aparapi.range(strings).map(s->string.length())... +``` + +Now the result is a stream of int's which can be 'reduced' by a reduction lambda. + +In this case the reduction reduces two int's to one, by choosing the max of k and v. All reductions must be commutative style operations (max, min, add) where the order of execution is not important. + +``` +int lengthOfLongestString = Aparapi.range(strings).map(s->string.length()).reduce((k,v)-> k>v?k:v); +``` + +Here we had a sum reduction. +``` +int sumOfLengths = Aparapi.range(strings).map(s ->string.length()).reduce((k,v)-> k+v); +``` + +Some of these may be common enough that we offer direct functionality. +``` +int sumOfLengths = Aparapi.range(strings).map(s ->string.length()).sum(); +int maxOfLengths = Aparapi.range(strings).map(s ->string.length()).max(); +int minOfLengths = Aparapi.range(strings).map(s ->string.length()).min(); +``` + +``` +String string = Aparapi.range(strings).map(s->string.length()).select((k,v)-> k>v); +``` +This last one needs some explaining. We map String to int then select the String whose length is the greatest. \ No newline at end of file diff --git a/PrivateMemorySpace.md b/PrivateMemorySpace.md new file mode 100644 index 00000000..59d1cfd9 --- /dev/null +++ b/PrivateMemorySpace.md @@ -0,0 +1,39 @@ +# Introduction # + +The private memory space identifier (just "private" is also recognised) can be applied to struct fields in order to indicate that the data is not shared with/accessible to other kernel instances. Whilst this is the default for non-array data, it must be explicitly applied to array fields in order to make them private. Aparapi now supports arrays in the private memory space. + +The private memory space is generally only suitable for smallish arrays, but is required for certain algorithms, e.g. for those which must mutate (for example, sort or partially sort) an exclusive copy of an array/subarray. + +# Details # + +In Aparapi there are two mechanisms available to mark a Kernel class member as belonging to the private memory space when mapped to OpenCL code (matching the equivalent functionality for marking items as belonging to the local memory space). Either the field can be named with a suffix plus buffer size, for example + +``` + protected short[] myBuffer_$private$32 = new short[32]; +``` + +or using the Annotation Kernel.PrivateMemorySpace, for example + +``` + protected @PrivateMemorySpace(32) short[] myBuffer = new short[32]; +``` + +The latter should be used in preference to the former. + +Note that OpenCL requires that the size of a private array be fixed at compile time for any kernel. Thus it is not possible for a single Kernel subclass to support private buffers of varying size. Unfortunately this may entail creating multiple subclasses with varying buffer sizes in order to most efficiently support varying _private buffer sizes._ + +Of course, a single Kernel class can be created which has a private buffer large enough for all use cases, though this may be suboptimal if only a small fraction of the maximum buffer size is commonly required. + +Because private buffers are unshared, they require much more of a GPU's memory than a local or global buffer of the same size, and should therefore be used sparingly and kept as small as possible, as overuse of large private arrays might cause GPU execution to fail on lower-end graphics cards. + +However, private memory space is the fastest of all OpenCls memory spaces, so may in some limited cases might be used to increase execution speed even when the kernel does not +need to modify the array and a shared (local or global) array would suffice - for example to provide a smallish lookup-table to replace an expensive function call. + +Without modification, an Aparapi kernel which uses private buffers may fail to work when invoked in Java Threadpool (JTP) mode, because the buffer will be shared across multiple threads. However a simple mechanism exists which allows such buffers to be used safely in JTP execution mode. + +The Kernel.NoCL annotation exists to allow specialised code to be executed when running in Java (or JTP) which is not invoked when running on the GPU. A NoCL method can be inserted at the begining of a Kernel's run() method which sets the private array to a value obtained from a static `ThreadLocal` where foo is the primitive type of the array in question. This will have no effect upon OpenCL execution, but will allow threadsafe execution when running in java. + +In the project samples, there is a package com.amd.aparapi.sample.median which gives an example of a median image filter which uses a private array of pixel data to apply a distructive median algorithm to a "window" of local pixels. This sample also demonstrates how to use the `ThreadLocal` trick to allow correct behaviour when running in JTP execution mode. + + +http://code.google.com/p/aparapi/source/browse/trunk/samples/median/src/com/amd/aparapi/sample/median/MedianDemo.java \ No newline at end of file diff --git a/ProfilingKernelExecution.md b/ProfilingKernelExecution.md new file mode 100644 index 00000000..dcb84aaf --- /dev/null +++ b/ProfilingKernelExecution.md @@ -0,0 +1,60 @@ +If you want to extract OpenCL performance info from a kernel at runtime you need to set the property :- + +``` +-Dcom.amd.aparapi.enableProfiling=true +``` + +Your application can then call `kernel.getProfileInfo()` after a successful call to `kernel.execute(range)` to extract a List `List`. + +Each `ProfileInfo` holds timing information for buffer writes, executs and buffer reads. + +The following code will print a simple table of profile information + +``` + List profileInfo = k.getProfileInfo(); + for (final ProfileInfo p : profileInfo) { + System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " + + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); + System.out.println(); + } +``` + +Here is an example implementation +``` + + final float result[] = new float[2048*2048]; + Kernel k = new Kernel(){ + public void run(){ + final int gid=getGlobalId(); + result[gid] =0f; + } + }; + k.execute(result.length); + List profileInfo = k.getProfileInfo(); + + for (final ProfileInfo p : profileInfo) { + System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " + + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); + System.out.println(); + } + k.dispose(); + } +} +``` + +And here is the tabular output from +``` + java + -Djava.library.path=${APARAPI_HOME} + -Dcom.amd.aparapi.enableProfiling=true + -cp ${APARAPI_HOME}:. + MyClass +``` + +``` + W val$result 69500 .. 72694 3194us + X exec() 72694 .. 72835 141us + R val$result 75327 .. 78225 2898us +``` + +The table shows that the transfer of the 'result' buffer to the device ('W') took 3194 us (micro seconds), the execute ('X') of the kernel 141 us and the read ('R') of resulting buffer 2898 us. \ No newline at end of file diff --git a/ProfilingKernelsFromEclipse.md b/ProfilingKernelsFromEclipse.md new file mode 100644 index 00000000..f831073c --- /dev/null +++ b/ProfilingKernelsFromEclipse.md @@ -0,0 +1,90 @@ +# Profiling Kernels with AMD profiler in Eclipse (Indigo) # + +Wayne Johnson + +12 May 2012 + +## Disclaimer: This has been tested with Eclipse (Indigo SR1) only on W7SR1. ## + +Assume your Eclipse project follows a typical Maven layout: +
+Project
+src/main/java/...
+AlgorithmImplementation.java
+src/test/java/...
+BenchmarkRunner.java
+BenchmarkTest.java
+lib/aparapi-2012-02-15/
+aparapi jar file
+native libraries for W7, Linux, and OSX
+…
+profiles/
+[this is where the profiles and logs will be generated]
+
+ +
    +
  1. Download and install the current AMD APP SDK
  2. +
  3. Download and install Aparapi (see Wiki), making sure that the native libraries are on your build path.
  4. +
  5. Create your algorithm implementation(s).
    +
    example: AlgorithmImplementations.java
  6. +
  7. Create your performance benchmark test as a JUnit test case to exercise your implementations.
    +example: BenchmarkTest.java
  8. +
  9. Test your JUnit test case inside Eclipse using BenchmarkRunner to make sure it works. The runner will be the main application for the runnable jar file you create in the next step.
    +This step will also automatically create the launch configuration that the export command will ask you for.
    +Select BenchmarkRunner.java
    +
    Right-click > Run as > Java application
    +
  10. +
  11. Export your project as a runnable jar file.
    +
    +Right-click > Export...
    +[wizard] Java > Runnable Jar File. Next.
    +Launch configuration: BenchmarkRunner [1] - Project
    +Export destination: Project\runner.jar
    +Library handling: [use default]
    +Finish.
    +Ok on “...repacks referenced libraries”
    +Yes on “Confirm replace” [You won’t see this dialog on the first export but will on subsequent exports]
    +Ok [ignore warning dialog]
    +
    +After refreshing Project, you should see a runner.jar file at the top level.
  12. +
  13. Create an external tool configuration to generate the performance counter profile
    +
    +Run > External Tools > External Tool Configurations...
    +Name: AMD counters - Project
    +Location: C:\Program Files (x86)\AMD APP\tools\AMD APP Profiler 2.4\x64\sprofile.exe
    +Arguments:
    +-o "${project_loc}\profiles\counters.csv"
    +-w "${project_loc}"
    +"C:\Program Files\Java\jdk1.6.0_30\bin\java.exe"
    +-Djava.library.path="lib\aparapi-2012-02-15"
    +-jar "${project_loc}\runner.jar"
    +
    +Note: The ''java.library.path'' indicates the relative location of the folder containing the native libraries used by Aparapi. If this is not set correctly, steps 9 and 10 below will run in JTP execution
    +mode and the only error message you will see on the Eclipse console is that the profile was not generated. This is because nothing executed on the GPU.
  14. + +
  15. Create an external tool configuration to generate the cltrace and summary profiles.
    +
    +Run > External Tools > External Tool Configurations...
    +Name: AMD cltrace - Project
    +Location: C:\Program Files (x86)\AMD APP\tools\AMD APP Profiler 2.4\x64\sprofile.exe
    +Arguments:
    +-o "${project_loc}\profiles\cltrace.txt" -k all -r -O -t -T
    +-w "${project_loc}"
    +"C:\Program Files\Java\jdk1.6.0_30\bin\java.exe"
    +-Djava.library.path="lib\aparapi-2012-02-15"
    +-jar "${project_loc}\runner.jar"
    +
    +
  16. +
  17. Run the AMD profiler counter configuration to generate the counter profile.
    +
    +Run > External Tools > AMD counters - Project
    +
    +
  18. +
  19. Run the AMD profiler cltrace configuration to generate the cltrace and summary profiles.
    +
    +Run > External Tools > AMD cltrace - Project
    +
    +
  20. +
      + +A project file for testing the above instructions can be found http://code.google.com/p/aparapi/source/browse/trunk/wiki-collateral/ProfilingKernelsFormEclipseProject.zip \ No newline at end of file diff --git a/ProjectHome.md b/ProjectHome.md new file mode 100644 index 00000000..ae9ba9df --- /dev/null +++ b/ProjectHome.md @@ -0,0 +1,105 @@ + + +# Notice # +Whilst there are useful resources here, please note that the source for Aparapi is now managed over on GitHub (. The repositories will be kept here for posterity, but please follow this link if you are looking for the latest code. + + * https://github.com/aparapi/aparapi + +We will need to migrate the text/wiki pages from here in light of Google's latest announcement + + * http://google-opensource.blogspot.com/2015/03/farewell-to-google-code.html + +# What is Aparapi? # +Aparapi allows Java developers to take advantage of the compute power of GPU and APU devices by executing data parallel code fragments on the GPU rather than being confined to the local CPU. It does this by converting Java bytecode to OpenCL at runtime and executing on the GPU, if for any reason Aparapi can't execute on the GPU it will execute in a Java thread pool. + +We like to think that for the appropriate workload this extends Java's 'Write Once Run Anywhere' to include GPU devices. + +With Aparapi we can take a sequential loop such as this (which adds each element from inA[.md](.md) and inB[.md](.md) arrays and puts the result in result[.md](.md)). +``` +final float inA[] = .... // get a float array of data from somewhere +final float inB[] = .... // get a float array of data from somewhere (inA.length==inB.length) +final float result = new float[inA.length]; + +for (int i=0; i result[id] = intA[id]+inB[id]); +``` + +Because we are also targeting the new "HSA Intermediate Language" https://hsafoundation.app.box.com/s/m6mrsjv8b7r50kqeyyal in the 'lambda' branch, Aparapi users will now be able to access `String`s (and other objects) from the Java heap. So given an array of `String`s and `int`s we can extract the lengths in parallel. +``` +Device.hsa().forEach(strings.length, id -> lengths[id] = strings[id].length()); +``` + +Note that because the example ''only'' works with HSA we need to select a HSA device. + +If you would like to download and try Aparapi follow the 'Downloads' link above and read the [UsersGuide](UsersGuide.md), alternatively if you would like to contribute or access the code you can check out the code from the SVN repository above and jump right in by reading the [DevelopersGuide](DevelopersGuide.md) pages. + +## Aparapi in the news + upcoming presentations ## + * ["GPU Acceleration of Interactive Large Scale Data Analytics Utilizing The Aparapi Framework" - Ryan LaMothe - AFDS](https://amdfusion.activeevents.com/scheduler/catalog/catalog.jsp) + * ["Aparapi: OpenCL GPU and Multi-Core CPU Heterogeneous Computing for Java" - Ryan LaMothe and Gary Frost - AFDS](https://amdfusion.activeevents.com/scheduler/catalog/catalog.jsp) + * ["Performance Evaluation of AMD-APARAPI Using Real World Applications" - Prakash Raghavendra - AFDS](https://amdfusion.activeevents.com/scheduler/catalog/catalog.jsp) + * ["Aparapi: An Open Source tool for extending the Java promise of ‘Write Once Run Anywhere’ to include the GPU" - Gary Frost - OSCON 7/18/2012](http://www.oscon.com/oscon2012/public/schedule/detail/23434) + * [Aparapi talk at DOSUG (Denver Open Source User Group) Sept 4th 2012](http://meetup.denveropensource.org/events/72220712) + * [Meetup meeting in Paris Sept 25th 2012](http://www.meetup.com/HPC-GPU-Supercomputing-Group-of-Paris-Meetup/) + + +## Useful links ## + * [Quick Reference Guide](http://aparapi.googlecode.com/svn/trunk/QuickReference.pdf) + * [2010 InfoQ Interview](http://www.infoq.com/news/2010/09/aparapi-java-and-gpus) + * [JavaOne 2010 Aparapi presentation](http://www.parleys.com/#st=5&id=2275) + * [AMD Fusion Developer Summit presentation](http://developer.amd.com/afds/assets/presentations/2912_final.pdf) + * [AMD Fusion Developer Summit video](http://developer.amd.com/afds/pages/video.aspx#/Dev_AFDS_Reb_2912) + * [Open Source Announcement at developer.amd.com](http://blogs.amd.com/developer/2011/09/14/i-dont-always-write-gpu-code-in-java-but-when-i-do-i-like-to-use-aparapi/) + * [Aparapi Mandlebrot demo on YouTube](http://www.youtube.com/watch?v=LlDT1FcCG5A) + * [Witold Bolt's "The smell of fresh coffee: Aparapi - Java on the GPU!"](http://translate.google.com/translate?hl=en&sl=pl&u=http://www.trzeciakawa.pl/%3Fp%3D248) + * [Some interesting feedback on Aparapi from this blogger 'a hackers craic'](http://a-hackers-craic.blogspot.com/2012/03/aparapi.html) + * [A nice blog showing how to implement an option volatility surface using Aparapi](http://www.snowfallsystems.com/vol-surface-on-gpu) + * [Here is Eduardo Dudu's Game of Life extensions including links to the code](https://forum.processing.org/topic/aparapi-opencl-directly-from-processing-java-grayscott-conways-examples-shared) Really nice graphics! + * [Here also is a Spanish Blog](http://edumo.net/wp/gray-scott-conways-game-of-life-aparapi-processing-org) + * [Some really good performance analysis of algorithms implemented using Aparapi](http://aparapi-vortex.blogspot.com) + * [Nice YouTube demo (Aparapi + JMonkeyEngine](http://www.youtube.com/watch?v=vX-tsp1f3Qs) + * [Another YouTube demo using Aparapi](http://forum.processing.org/topic/videomapping-processing-2-aparapi-opencl-shader) + * [A nice blog describing one developers take on Aparapi](http://www.beyondjava.net/blog/aparapi-run-java-applications-on-your-graphics-accelerator-card/#more-543) + * [Aparapi running on Nexus 4 Phone](http://mahadevangorti.blogspot.in/2013/03/nexus-4-is-running-with-opencl-programs.html) + * [An attempt to use Aparapi for Neural Network applications](http://aparacog.wikia.com/wiki/Aparacog_Wiki) + * [A nice writeup of Aparapi from Tomas Zrybak](http://tomaszrybak.wordpress.com/2013/12/11/aparapi) + +## Similar Work ## + * [Peter Calvert's java-GPU has similar goals and offers a mechanism for converting Java code for use on the GPU](http://code.google.com/p/java-gpu/) + * Check out Peter's dissertation ["Parallelisation of Java for Graphics Processors" which can be found here](http://www.cl.cam.ac.uk/~prc33/) + * [Marco Hutter's Java bindings for CUDA](http://www.jcuda.org/) + * [Marco Hutter's Java bindings for OpenCL](http://www.jocl.org/) + * [Ian Wetherbee's Java acceleration project - creates accelerated code from Java (currently C code and native Android - but CUDA creation planned)](https://bitbucket.org/wetherbeei/acceljava) + * ["Rootbeer: Seamlessly using GPUs from Java" by Philip C. Pratt-Szeliga](https://github.com/pcpratts/rootbeer1#readme) + + +## Wiki Pages ## + * User’s Guide [UsersGuide](UsersGuide.md) + * Developer’s Guide [DevelopersGuide](DevelopersGuide.md), for developers who want to build Aparapi or contribute to the project + * Frequently Asked Questions [FrequentlyAskedQuestions](FrequentlyAskedQuestions.md) + +## About the name ## + +Aparapi is just a contraction of "A PARallel API" + +However... "Apa rapi" in Indonesian (the language spoken on the island of Java) translates to "What a neat...". So "Apa rapi Java Project" translates to "What a neat Java Project" [How cool is that?](http://translate.google.com/?tl=id&q=undefined#id/en/Apa%20rapi%20java%20project) diff --git a/QuickReference.pdf b/QuickReference.pdf deleted file mode 100644 index 5458d169..00000000 Binary files a/QuickReference.pdf and /dev/null differ diff --git a/SettingUpLinuxHSAMachineForAparapi.md b/SettingUpLinuxHSAMachineForAparapi.md new file mode 100644 index 00000000..a7ddb471 --- /dev/null +++ b/SettingUpLinuxHSAMachineForAparapi.md @@ -0,0 +1,259 @@ + +# Introduction # + +Now that HSA hardware is generally available I figured it was time to describe how to setup a HSA enabled Linux platform so that it can run Aparapi. + +Here is a nice introduction to HSA http://developer.amd.com/resources/heterogeneous-computing/what-is-heterogeneous-system-architecture-hsa/ + +But for Aparapi users the main advantage is that we are no longer limited to the GPU memory for running GPU tasks. Also because the CPU and the GPU can both see the same memory (the Java heap) Aparapi code can now access Java objects directly. This removes a number of Aparapi constraints. So more of your code can now run on the GPU. + +## Hardware Required ## + +These instructions were based on my experience setting up a platform using the following hardware. +| **Component** | **Suggested**| +|:--------------|:-------------| +|APU|AMD A10-7850K APU http://www.amd.com/us/products/desktop/processors/a-series/Pages/a-series-apu.aspx| +|Motherboard|ASUS A88X-PRO or A88XM-A http://www.asus.com/Motherboards/A88XPRO http://www.asus.com/Motherboards/A88XMA| +|Memory|G.SKILL Ripjaws X Series 16GB (2 x 8GB) 240-Pin DDR3 SDRAM DDR3 2133| + +## Software Required ## +We also have some software dependencies. + +| **Component** | **Suggested**| +|:--------------|:-------------| +|Java 8 JDK| http://www.oracle.com/technetwork/java/javase/downloads/ea-jsp-142245.html| +|Ubuntu 13.10 64-bit edition| http://www.ubuntu.com/download | +|Ubuntu 13.10 64-bit edition HSA enabled kernel image|https://github.com/HSAFoundation/Linux-HSA-Drivers-And-Images-AMD | +|OKRA HSA enabled runtime| https://github.com/HSAFoundation/Okra-Interface-to-HSA-Device | + +The hope is that the list of HW/SW support widens, but for early adopters this is the set of HW/SW we have been testing with. + +# Setting up your System # + +## Configure your BIOS to support IOMMU ## + +Once you have built your `AMD A10-7850K APU` based system you should make sure that your system is configured to use IOMMU. + +Remember HSA allows the GPU and CPU cores to share the same memory. IOMMU needs to be enabled for this. + +### For the A88X-PRO board ### + +For the recommended ASUS board above you will need to make sure that your BIOS is updated to version 0802. Here is a direct link to the 0802 version of the BIOS from ASUS's site as of 2/28/2014. + +http://dlcdnet.asus.com/pub/ASUS/mb/SocketFM2/A88X-PRO/A88X-PRO-ASUS-0802.zip + +Once you have the latest BIOS you will need to enable IOMMU in the system BIOS. This is done using the "CPU Configuration" screen under "Advanced Mode" and then enabling IOMMU. + +### For the A88XM-A ### + +You will need the 1102 (or later) version of the BIOS + +http://dlcdnet.asus.com/pub/ASUS/mb/SocketFM2/A88XM-A/A88XM-A-ASUS-1102.zip + +Once you have the latest BIOS you will need to enable IOMMU in the system BIOS. This is done using the "CPU Configuration" screen under "Advanced Mode" and then enabling IOMMU. + +## Installing Ubuntu 13.10 ## +Once you have your BIOS setup you need to install Ubuntu http://www.ubuntu.com/download + +## Installing HSA enabled kernel + driver ## +Until all of the HSA drivers and features are available in **stock** linux and have been pulled down into Ubuntu distro we will need a special HSA enabled kernel image. + +A Ubuntu compatible kernel can be pulled from github + +``` +$ cd ~ # I put all of this in my home dir +$ sudo apt-get install git +$ git clone https://github.com/HSAFoundation/Linux-HSA-Drivers-And-Images-AMD.git +``` + +Or you can pull the zip and unzip using curl if you don't have git + +``` +$ cd ~ # I put all of this in my home dir +$ curl -L https://github.com/HSAFoundation/Linux-HSA-Drivers-And-Images-AMD/archive/master.zip > drivers.zip +$ unzip drivers.zip +``` + +This will create the following subdir on your machine +
      +Linux-HSA-Drivers-And-Images-AMD/
      +LICENSE
      +README.md
      +ubuntu12.10-based-alpha1/
      +xorg.conf
      +linux-image-3.13.0-kfd+_3.13.0-kfd+-2_amd64.deb
      +
      +
      + +From here we can install our new image and setup the HSA KFD (the driver for HSA)and reboot to the new kernel. + +``` +$ cd ~/Linux-HSA-Drivers-And-Images-AMD +$ echo "KERNEL==\"kfd\", MODE=\"0666\"" | sudo tee /etc/udev/rules.d/kfd.rules +$ sudo dpkg -i ubuntu13.10-based-alpha1/linux-image-3.13.0-kfd+_3.13.0-kfd+-2_amd64.deb +$ sudo cp ~/Linux-HSA-Drivers-And-Images-AMD/ubuntu13.10-based-alpha1/xorg.conf /etc/X11 +$ sudo reboot +``` + + +## Installing OKRA RT ## + +Now we need a runtime for executing HSAIL code. We share common infrastructure used by our sister OpenJDK project called **Sumatra**. Both Aparapi and Sumatra use OKRA to execute HSAIL code on a HSA enabled platform. + +We can get the latest version using of OKRA (Offloadable Kernel Runtime API) from another HSA foundation repository. + +``` +$ cd ~ # I put all of this in my home dir +$ git clone https://github.com/HSAFoundation/Okra-Interface-to-HSA-Device.git +``` + +or if you prefer curl/unzip + +``` +$ cd ~ # I put all of this in my home dir +$ curl -L https://github.com/HSAFoundation/Okra-Interface-to-HSA-Device/archive/master.zip > okra.zip +$ unzip okra.zip +``` +This will create the following dir structure. + +
      +Okra-Interface-to-HSA-Device/
      +README.md
      +okra/
      +README
      +dist/
      +okra.jar
      +bin/
      +libamdhsacl64.so
      +libnewhsacore64.so
      +libokra_x86_64.so
      +include/
      +common.h
      +okraContext.h
      +
      +samples/
      +dist/
      +Squares
      +Squares.hsail
      +runSquares.sh
      +
      + +OKRA offers a C API (for those that are so inclined ;) ) as well as a java jar file which contains JNI wrappers. + +## Sanity check your HSA and OKRA install ## + +So to sanity check your install you can run a small sample app (binary) +``` +$ cd ~/Okra-Interface-to-HSA-Device/okra/samples/ +$ sh runSquares.sh +``` + +If everything is OK this should run the C Squares test app. + +Congratulations, you have executed your first HSA enabled app. + + +## Getting OpenCL headers and libraries ## + +We need OpenCL headers and libraries to build Aparapi (remember we still support OpenCL). + +My recommendation is to download **`AMD-APP-SDK-v2.9-lnx64.tgz`** from http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads and extract the libraries and headers. + +Note that we have nested zipped jars in this archive. + +``` +$ cd ~ +$ gunzip ~/Downloads/AMD-APP-SDK-v2.9-lnx64.tgz +$ tar xvf ~/Downloads/AMD-APP-SDK-v2.9-lnx64.tar +$ rm ~/default-install_lnx_64.pl ~/icd-registration.tgz ~/Install-AMD-APP.sh ~/ReadMe.txt +$ gunzip ~/AMD-APP-SDK-v2.9-RC-lnx64.tgz +$ tar xvf ~/AMD-APP-SDK-v2.9-RC-lnx64.tar +$ rm ~/AMD-APP-SDK-v2.9-RC-lnx64.tar +$ rm -rf AMD-APP-SDK-v2.9-RC-lnx64/samples +``` + +Note where **AMD-APP-SDK-v2.9-RC-lnx64** is located, you need this in the following step. + +## You will need Java 8 ## + +Download Java 8 JDK from https://jdk8.java.net/download.html I chose to download the zipped tar and not install with RPM so I can control the location of the install. + +``` +$ cd ~ +$ gunzip /home/gfrost/Downloads/jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar.gz +$ tar xvf ~/Downloads/jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar +``` + +I now have `~/jdk1.8.0` as my java 8 install dir. + +Alternatively the following will pull from Oracles site using curl +``` +$ cd ~ +$ curl http://download.java.net/jdk8/archive/b132/binaries/jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar.gz?q=download/jdk8/archive/b132/binaries/jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar.gz > jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar.gz +$ gunzip jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar.gz +$ tar xvf jdk-8-fcs-bin-b132-linux-x64-04_mar_2014.tar +``` + +I now have `~/jdk1.8.0` as my java 8 install dir. + +## You will need ant ## + +``` +$ sudo apt-get install ant +``` + +This takes a long time because in also installs a java7 jdk. + +## You will need g++ ## + +We use g++ to build the JNI side of Aparapi + +``` +$ sudo apt-get install g++ +``` + +## Pulling the HSA enabled Aparapi branch and building ## + +Now we can pull the Aparapi lambda/HSA branch from SVN +``` +$ sudo apt-get install subversion +$ svn checkout https://aparapi.googlecode.com/svn/branches/lambda aparapi-lambda +``` + +If you are familiar with Aparapi structure then this tree should not be _that much of a surprise_ but there are a few subtle changes. + +Specifically the build system has been changed to support OKRA, Aparapi JNI code is provided as a Java agent and the execution scripts all refer to **`${APARAPI_HOME}/env.sh`** to setup a reasonable execution environment. + +You will need to edit **`env.sh`** and make sure that **`APARAPI_HOME`**, **`OKRA_HOME`**, **`OCL_HOME`** and **`JAVA_HOME`** correctly. + +Here are how I set my vars. + +| **environment variable** | **value** | +|:-------------------------|:----------| +| JAVA\_HOME | /home/${LOGNAME}/jdk1.8.0 | +| OCL\_HOME | /home/${LOGNAME}/AMD-APP-SDK-v2.9-RC-lnx64| +| APARAPI\_HOME | /home/${LOGNAME}/aparapi-lambda | +| OKRA\_HOME | /home/${LOGNAME}/Okra-Interface-to-HSA-Device/okra/ | + +It is recommended (thanks notzed ;) ) that you test your `env.sh` using **`sh env.sh`** until it stops reporting errors. + +Once you have finished I recommend sourcing it into your current shell before building with ant. + +``` +$ cd ~aparapi-lambda +$ . env.sh +$ ant +``` + +If you get any problems check the `env.sh` vars first. + +If all is well you should be able to run some samples. + +``` +$ cd ~/aparapi-lambda/samples/mandel +$ sh hsailmandel.sh +``` \ No newline at end of file diff --git a/SettingUpLinuxHSAMachineForAparapiSidebar.md b/SettingUpLinuxHSAMachineForAparapiSidebar.md new file mode 100644 index 00000000..e69de29b diff --git a/UnitTestGuide.md b/UnitTestGuide.md new file mode 100644 index 00000000..31f79ad6 --- /dev/null +++ b/UnitTestGuide.md @@ -0,0 +1,200 @@ +# **Unit Test Guide** # +The Unit Test Guide explains the test infrastructure associated with Aparapi, including instructions for executing existing tests adding new test cases. +## OpenCL™ code generation tests ## +The initial open source tree includes the codegen subdirectory (test/codegen), which used to validate the Aparapi bytecode to OpenCL™ conversion. +``` + aparapi/trunk/ + com.amd.aparapi/ + src/java/com.amd.aparapi/ + build.xml + test/ + codegen/ + src/java/ + com.amd.aparapi/ + com.amd.aparapi.test/ + build.xml + build.xml +``` +The code generation tests to not require OpenCL™ , AMD APP SDK or a GPU devices to be configured; these tests only validate the creation of valid OpenCL™ code by comparing against predefined expected output. +### Running the OpenCL™ code generation JUnit tests ### +Before executing the code generation tests, build the com.amd.aparapi sub-project and ensure that you have JUnit 4 installed. + +Edit the junit.jar property in test/codegen/build.xml to point to your install directory. +``` + +``` + +Initiate the code generation tests using ant. +``` +C:\> cd tests/codegen +C:\> ant + +C:> +``` + +View the HTML version of the JUnit report at junit/html/index.html. +On Microsoft Windows(r) platforms use +``` +C:\> start junit\html\index.html +``` + +On Linux(r) platforms just invoke your browser (Firefox in this case). +``` +C:\> firefox junit\html\index.html +``` + +### Adding a new OpenCL™ code generation test ### +The test cases for OpenCL™ code generation are not strictly JUnit tests. Instead the codegen Java tree contains a tool (CreateJUnitTests) to create JUnit test cases from specially formatted test source files. + +The package `com.amd.aparapi.test` (`codegen/src/java/com/amd/aparapi/test`) contains all of the existing code generation tests. + +Here is an example that tests the code generation resulting from a call to `Kernel.getPassId()`, this is taken from [com.amd.aparapi.test.CallGetPassId](http://code.google.com/p/aparapi/source/browse/trunk/test/codegen/src/java/com/amd/aparapi/test/CallGetPassId.java) +``` +package com.amd.aparapi.test; + +import com.amd.aparapi.Kernel; + +public class CallGetPassId extends Kernel{ + public void run() { + int thePassId = getPassId(); + } + +} +/**{OpenCL{ + +typedef struct This_s{ + int passid; +}This; +int get_pass_id(This *this){ + return this->passid; +} +__kernel void run( + int passid +){ + This thisStruct; + This* this=&thisStruct; + this->passid = passid; + { + int thePassId = get_pass_id(this); + return; + } +} + +}OpenCL}**/ +``` + +The test source takes the form of a simple class that extends the kernel and a block of OpenCL code between the `/**{OpenCL{ and }OpenCL}**/` markers. The code between these markers is the OpenCL code that we expect Aparapi to produce as a result of converting the `run()` method to OpenCL. + +The code-generating ant build.xml file performs the following steps to generate its report: + * compiles the src/java tree. This compiles all the test cases as well as a few ‘utility’ classes. + * executes the com.amd.aparapi.test.CreateJUnitTests program. This iterates through all of the test source files and converts them to JUnit form. The generated source is written to the src/genjava tree. + * compiles the src/genjava tree to create the required JUnit classes + * initiates the JUnit test phase (result data in junit/data) + * creates the JUnit report (in junit/html/junit from junit/data) + +To create a new test case, just add your test case to the +codegen/src/java/com/amd/aparapi/test package (including the expected OpenCL). + +Sometimes different javac implementations (such as Oracle and Eclipse) will generate different bytecode for the same source. When Aparapi converts this bytecode it may yield different (but equally acceptable) OpenCL forms. + +One example of this is the BooleanToggle test: + +``` +public class BooleanToggle{ + public void run() { + boolean pass = false; + + pass = !pass; + + } +} +``` + +The BooleanToggle test code creates two (slightly different) versions of OpenCL™ (sadly one line different) depending on the javac compiler. + +This example shows the ‘toggle’ OpenCL™ created from the bytecode generated by Oracle. +``` +pass = pass==1?0:1; +``` + +This example shows the bytecode from Eclipse javac: +``` +pass = pass==0?1:0; +``` + +Logically either of the above are correct. However, to accommodate the alternate acceptable forms we need to add two complete `/**{OpenCL{ and }OpenCL}**/` sections to the file. If either matches, the test will pass. + +Here is the complete BooleanToggle code. +``` +package com.amd.aparapi.test; + +public class BooleanToggle{ + public void run() { + boolean pass = false; + + pass = !pass; + + } +} +/**{OpenCL{ +typedef struct This_s{ + int passid; +}This; +int get_pass_id(This *this){ + return this->passid; +} +__kernel void run( + int passid +){ + This thisStruct; + This* this=&thisStruct; + this->passid = passid; + { + char pass = 0; + pass = (pass==0)?1:0; + return; + } +} +}OpenCL}**/ +/**{OpenCL{ +typedef struct This_s{ + int passid; +}This; +int get_pass_id(This *this){ + return this->passid; +} +__kernel void run( + int passid +){ + This thisStruct; + This* this=&thisStruct; + this->passid = passid; + { + char pass = 0; + pass = (pass!=0)?0:1; + return; + } +} +}OpenCL}**/ +``` + +For tests that are expected to FAIL you should not include an `/**{OpenCL{ ... }OpenCL}**/` stanza. Instead indicate the expected failure (the name/type of exception) inside a `/**{Throws{...}Throws}**/` stanza. + +Here is an example accessing a character array (Aparapi does not support character arrays) which we expect to generate a `ClassParseException`. +``` +package com.amd.aparapi.test; + +import com.amd.aparapi.Kernel; + +public class CharType extends Kernel{ + int out[] = new int[1]; + @Override public void run() { + out[0] = 'a'; + } +} + +/**{Throws{ClassParseException}Throws}**/ +``` + + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/UsersGuide.md b/UsersGuide.md new file mode 100644 index 00000000..7fbcaeb8 --- /dev/null +++ b/UsersGuide.md @@ -0,0 +1,143 @@ +# **User’s Guide** # +Aparapi is: +An API used to express data parallel workloads in Java and +a runtime system capable of running compatible workloads on a compatible GPU. + +Where your workload runs depends on + * Whether you have a compatible GPU and OpenCL capable device driver + * Whether your Java parallel code can be converted to OpenCL by Aparapi +For information about restrictions on the code that Aparapi can convert to OpenCL, see [JavaKernelGuidelines](JavaKernelGuidelines.md). + +Aparapi depends on AMD’s OpenCL™ driver to execute on the GPU and therefore shares the same device, driver, and platform compatibility requirements as AMD APP SDK V2.5®. + * 32-bit Microsoft® Windows® 7 + * 32-bit Microsoft® Windows Vista® SP2 + * 64-bit Microsoft® Windows® 7 + * 64-bit Microsoft® Windows Vista® SP2 + * 32-bit Linux® OpenSUSE™ 11.2,   Ubuntu® 10.04/9.10, or Red Hat® Enterprise Linux® 5.5/5.4 + * 64-bit Linux® OpenSUSE™ 11.2,   Ubuntu® 10.04/9.10, or Red Hat® Enterprise Linux® 5.5/5.4 + * An OpenCL GPU and suitable OpenCL enabled device driver + * An installed AMD APP SDK v2.5 or later +If you prefer to test Aparapi in JTP mode (Java Thread Pool) then you will only need Aparapi.jar and Oracle Java 6 or later JRE or JDK. + +The following fragment of Java code takes an input float array and populates an output array with the square of each element. +``` +final float in[8192]; // initialization of in[0..8191] omitted +final float out[in.length]; + +for(int i=0; i +$ bash ./mandel.sh JTP + +``` + +# **Building the sample applications** # +To build a sample, install Oracle® JDK 6 and Apache Ant (at least 1.7.1). + * Set the environment variable `ANT_HOME` to point to the root of your ant install. + * Ensure that the `%ANT_HOME%/bin` or `${ANT_HOME}/bin` is in your path. + * Set the environment variable `JAVA_HOME` to point to the root of your JDK. + * Change to the appropriate samples directory (sample/squares or sample/mandel). + * Initiate a build using ant. +``` +$ cd samples/mandel +$ ant +$ bash ./mandel.sh GPU +``` + +[Attribution](Attribution.md) \ No newline at end of file diff --git a/UsingAparapiLambdaBranchWithHSASimulator.md b/UsingAparapiLambdaBranchWithHSASimulator.md new file mode 100644 index 00000000..d79e3b8f --- /dev/null +++ b/UsingAparapiLambdaBranchWithHSASimulator.md @@ -0,0 +1,49 @@ +# Introduction # + +Although HSA compatible devices are available, we understand that Aparapi developers may not have access to these devices. + +The HSA foundation has open sourced an LLVM based HSAIL emulator which we can use to test HSAIL generated code. + +The project is based here (https://github.com/HSAFoundation/Okra-Interface-to-HSAIL-Simulator) but we have extracted detailed download and build instructions for Ubuntu below. + +Aparapi users/developers can use this simulator to test correctness. + + +### Building the HSA Simulator on Ubuntu ### + +We assume you have ant, svn and g++ available because you can build other aparapi artifacts. + +You will also need git, libelf-dev, libdwarf-dev, flex and cmake + +``` +$ sudo apt-get install git libelf-dev libdwarf-dev flex cmake +login... +$ git clone https://github.com/HSAFoundation/Okra-Interface-to-HSAIL-Simulator.git okra +$ cd okra +$ ant -f build-okra-sim.xml +``` + +The build should take approximately 15 mins. + +### How to setup and test an initial lambda/HSA enabled Aparapi build ### + +Assuming you have built okra in `/home/gfrost/okra` + +Assuming your Java8 JDK is in `/home/gfrost/jdk1.8.0` + +Assuming your aparapi svn trunk is `/home/gfrost/aparapi` + +``` +$ export JAVA_HOME=/home/gfrost/jdk1.8.0 +$ export OKRA=/home/gfrost/okra +$ export PATH=${PATH}:${JAVA_HOME}/bin:${OKRA}/dist/bin +$ java -version +java version "1.8.0-ea" +Java(TM) SE Runtime Environment (build 1.8.0-ea-b94) +Java HotSpot(TM) 64-Bit Server VM (build 25.0-b36, mixed mode) +$ cd /home/gfrost/aparapi/branches/lambda +$ ant +$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${OKRA}/dist/bin +$ java -agentpath:com.amd.aparapi.jni/dist/libaparapi_x86_64.so -cp com.amd.aparapi/dist/aparapi.jar:${OKRA}/dist/okra.jar hsailtest.Squares +$ +``` \ No newline at end of file diff --git a/UsingConstantMemory.md b/UsingConstantMemory.md new file mode 100644 index 00000000..ba45241a --- /dev/null +++ b/UsingConstantMemory.md @@ -0,0 +1,61 @@ +# How to make use of new constant memory feature # + +By default all primitive arrays accessed by an Aparapi Kernel is considered global. If we look at the generated code `using -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true` we will see that primitive arrays (such as `int buf[]`) are mapped to `__global` pointers (such as `__global int *buf`) in OpenCL. + +Although this makes Aparapi easy to use (especially to Java developers who are unfamiliar to tiered memory hierarchies), it does limit the ability of the 'power developer' wanting to extract more performance from Aparapi on the GPU. + +This [page](http://www.amd.com/us/products/technologies/stream-technology/opencl/pages/opencl-intro.aspx?cmpid=cp_article_2_2010) from AMD's website shows the different types of memory that OpenCL programmers can exploit. + +![http://www.amd.com/PublishingImages/Public/Graphic_Illustrations/375WJPEG/47039A_OpenCLMemoryModel_375W.jpg](http://www.amd.com/PublishingImages/Public/Graphic_Illustrations/375WJPEG/47039A_OpenCLMemoryModel_375W.jpg) + +Global memory buffers in Aparapi (primitive Java arrays) are stored in host memory and are copied to Global memory (the RAM of the GPU card). + +Local memory is 'closer' to the compute devices and not copied from the host memory, it is just allocated for use on the device. The use of local memory on OpenCL can lead to much more performant code as the cost of fetching from local memory is much lower. + +Local memory is shared by all work item's (kernel instances) executing in the same group. This is why the use of local memory was deferred until we had a satisfactory mechanism for specifying a required group size. + +We recently also added support for `constant` memory for data that needs to be written once to the GPU but will not change. + +Aparapi only supports `constant` arrays, not scalers. + +## How to define a primitive array as "constant" ## +We have two ways define a constant buffer. Either we can decorate the variable name with a `_$constant$` suffix (yes it is a valid identifier n Java). + +``` +final int[] buffer = new int[1024]; // this is global accessable to all work items. +final int[] buffer_$constant$ = new int[]{1,2,3,4,5,6,7,8,9} // this is a constant buffer + +Kernel k = new Kernel(){ + public void run(){ + // access buffer + // access buffer_$constant$ + // .... + } +} +``` + +Alternatively (if defining inside the derived Kernel class - cannot be +used via anonymous inner class pattern above!) we can can use the `@Constant` annotation. + +``` +final int[] buffer = new int[1024]; // this is global accessable to all work items. + +Kernel k = new Kernel(){ + @Constant int[] constantBuffer = new int[]{1,2,3,4,5,6,7,8,9} // this is a constant buffer + public void run(){ + // access buffer + // access constantBuffers + // .... + } +} +``` + + + + +## Can I see some code? ## + +I updated the Mandelbrot example so that the pallete of RGB values is represented using constant memory, the source can be found here. Look at line #95. BTW for me this resulted in a 5-7 % performance improvement. + + +http://code.google.com/p/aparapi/source/browse/trunk/samples/mandel/src/com/amd/aparapi/sample/mandel/Main.java \ No newline at end of file diff --git a/UsingLocalMemory.md b/UsingLocalMemory.md new file mode 100644 index 00000000..12872cdd --- /dev/null +++ b/UsingLocalMemory.md @@ -0,0 +1,216 @@ +# How to make use of new local memory feature # + +By default all primitive arrays accessed by an Aparapi Kernel is considered global. If we look at the generated code `using -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true` we will see that primitive arrays (such as `int buf[]`) are mapped to `__global` pointers (such as `__global int *buf`) in OpenCL. + +Although this makes Aparapi easy to use (especially to Java developers who are unfamiliar to tiered memory hierarchies), it does limit the ability of the 'power developer' wanting to extract more performance from Aparapi on the GPU. + +This [page](http://www.amd.com/us/products/technologies/stream-technology/opencl/pages/opencl-intro.aspx?cmpid=cp_article_2_2010) from AMD's website shows the different types of memory that OpenCL programmers can exploit. + +![http://www.amd.com/PublishingImages/Public/Graphic_Illustrations/375WJPEG/47039A_OpenCLMemoryModel_375W.jpg](http://www.amd.com/PublishingImages/Public/Graphic_Illustrations/375WJPEG/47039A_OpenCLMemoryModel_375W.jpg) + +Global memory buffers in Aparapi (primitive Java arrays) are stored in host memory and are copied to Global memory (the RAM of the GPU card). + +Local memory is 'closer' to the compute devices and not copied from the host memory, it is just allocated for use on the device. The use of local memory on OpenCL can lead to much more performant code as the cost of fetching from local memory is much lower. + +Local memory is shared by all work item's (kernel instances) executing in the same group. This is why the use of local memory was deferred until we had a satisfactory mechanism for specifying a required group size. + +Aparapi only supports `local` arrays, not scalers. + +## How to define a primitive array as "local" ## +We have two ways define a local buffer. Either we can decorate the variable name with a `_$local$` suffix (yes it is a valid identifier n Java). + +``` +final int[] buffer = new int[1024]; // this is global accessable to all work items. +final int[] buffer_$local$ = new int[1024]; // this is a local buffer 1024 int's shared across all work item's in a group + +Kernel k = new Kernel(){ + public void run(){ + // access buffer + // access buffer_$local$ + localBarrier(); // allows all writes to buffer_$local$ to be synchronized across all work items in this group + // .... + } +} +``` + +Alternatively (if defining inside the derived Kernel class - cannot be +used via anonymous inner class pattern above!) we can can use the `@Local` annotation. + +``` +final int[] buffer = new int[1024]; // this is global accessable to all work items. + +Kernel k = new Kernel(){ + @Local int[] localBuffer = new int[1024]; // this is a local buffer 1024 int's shared across all work item's in a group + public void run(){ + // access buffer + // access localBuffer + localBarrier(); // allows all writes to localBuffer to be synchronized across all work items in this group + // .... + } +} +``` + +## How do I know how big to make my local buffer? ## + +This is where the new `Range` class helps. + +If we create a `Range` using: + +``` +Range rangeWithUndefinedGroupSize = Range.create(1024); +``` + +The Aparapi will pick a suitable group size. Generally this will be the highest factor of global size <= 256. So for a global size which is a power of two (and greater or equal to256 ;) ) the group size will be 256. + +Normally the size a local buffer will be some ratio of the group size. + +So if we needed 4 ints per group we might use a sequence such as. + +``` +final int[] buffer = new int[8192]; // this is global accessable to all work items. +final Range range = Range.create(buffer.length); // let the runtime pick the group size + +Kernel k = new Kernel(){ + @Local int[] localBuffer = new int[range.getLocalSize(0)*4]; // this is a local buffer containing 4 ints per work item in the group + public void run(){ + // access buffer + // access localBuffer + localBarrier(); // allows all writes to localBuffer to be synchronized across all work items in this group + // .... + } +} +``` + +Alternatively you can of course specify your own group size when you create the Range. +``` +final int[] buffer = new int[8192]; // this is global accessable to all work items. +final Range range = Range.create(buffer.length,16); // we requested a group size of 16 + +Kernel k = new Kernel(){ + @Local int[] localBuffer = new int[range.getLocalSize(0)*4]; // this is a local buffer containing 4 ints per work item in the group = 64 ints + public void run(){ + // access buffer + // access localBuffer + localBarrier(); // allows all writes to localBuffer to be synchronized across all work items in this group + // .... + } +} +``` + +## Using barriers ## + +As we mentioned above local memory buffers are shared by all work items/kernels executing in the same group. However, to read a value written by another workitem we need to insert a local barrier. + +A common pattern involves having each work item copying a value from global memory in local memory. + +``` +Kernel k = new Kernel(){ + @Local int[] localBuffer = new int[range.getLocalSize(0)]; + public void run(){ + + localBuffer[getLocalId(0)] = globalBuffer[getGlobalId(0)]; + localBarrier(); // after this all kernels can see the data copied by other workitems in this group + // use localBuffer[0..getLocalSize(0)] + } +} +``` + +Without the barrier above, there is no guarantee that other work items will see mutations to localBuffer from other work items. + +## Caution regarding barriers ## +Barriers can be dangerous. It is up to the developer to ensure that all kernels execute the same # of calls to localBarrier(). Be very careful with conditional code (or code containing loops!), to ensure that each kernel executes the same number of calls to localBarrier(). + +The following kernel will deadlock! +``` +Kernel kernel = new Kernel(){ + public void run(){ + if (getGlobalId(0)>10){ + // ... + localBarrier(); + // ... + } + } +} +``` + +We need to make sure that all kernel's in a group execute the localBarrier(). So the following will work. + +``` +Kernel kernel = new Kernel(){ + public void run(){ + if (getGlobalId(0)>10){ + // ... + localBarrier(); + // ... + }else{ + localBarrier(); + } + + } +} +``` + +Of course if we have multiple calls to localBarrier() in the 'if' side of the if..then then we must match in the 'else'. + +``` +Kernel kernel = new Kernel(){ + public void run(){ + if (getGlobalId(0)>10){ + // ... + localBarrier(); + // ... + localBarrier(); + // ... + }else{ + localBarrier(); + localBarrier(); + } + + } +} +``` + +With loops we must make sure that each kernel processes any loop the sam e # of times. + +So the following is fine. +``` +Kernel kernel = new Kernel(){ + public void run(){ + for (int i=0; i< 10; i++){ + // ... + localBarrier(); + // ... + } + } +} +``` + +However the following will deadlock + +``` +Kernel kernel = new Kernel(){ + public void run(){ + for (int i=0; i< getLocalId(0); i++){ + // ... + localBarrier(); + // ... + } + } +} +``` + +As a testament to how well we emulate OpenCL in JTP mode, this will also deadlock your kernel in JTP mode ;) so be careful. + +## Performance impact in JTP mode ## +Of course Java itself does not support local memory in any form. So any time code using local memory falls back to JTP mode we must expect a considerable performance degradation (try the NBody local example in JTP mode). + +We do honor localBarrier() using Java's barrier from the new concurrency utils. However, Java's memory model does not require the use of a barrier to observe array changes across threads. So these barriers are basically just an expense. + +I would recommend using local memory and barriers only if I am 90% sure the code will run on the GPU. + + +## Can I see some code? ## + +I added a version of `NBody` example which uses local memory, the source can be found here. + +http://code.google.com/p/aparapi/source/browse/trunk/examples/nbody/src/com/amd/aparapi/examples/nbody/Local.java \ No newline at end of file diff --git a/UsingMultiDimExecutionRanges.md b/UsingMultiDimExecutionRanges.md new file mode 100644 index 00000000..d7aa8dd7 --- /dev/null +++ b/UsingMultiDimExecutionRanges.md @@ -0,0 +1,80 @@ +Aparapi now allows developers to execute over one, two or three dimensional ranges. + +OpenCL natively allows the user to execute over 1, 2 or 3 dimension grids via the [clEnqueueNDRangeKernel()](http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clEnqueueNDRangeKernel.html) method. + +Initially we chose not to expose 2D or 3D ranges (Aparapi's `Kernel.execute(range)` allowed only !d ranges, but following a specific request we added the notion of a Range via the new `com.amd.aparapi.Range` class. + +A range is created using various static factory methods. For example to create a simple range {0..1024} we would use. + +``` +Range range = Range.create(1024); +``` + +In this case the range will span 1..1024 and a 'default' group size will be decided behind the scenes (256 probably in this case). + +If the user wishes to select a specific group size (say 32) for a one dimensional Range (0..1024) then they can use. + +``` +Range range = Range.create(1024, 32); +``` + +The group size must always be a 'factor' of the global range. So `globalRange % groupSize == 0` + +For a 2D range we use the `Range.create2D(...)` factory methods. + +``` +Range range = Range.create2D(32, 32); +``` + +The above represents a 2D grid of execution 32 rows by 32 columns. In this case a default group size will be determined by the runtime. + +If we wish to specify the groupsize (say 4x4) then we can use. + +``` +Range range = Range.create2D(32, 32, 4, 4); +``` + +This example uses a 2D range to apply a blurring convolution effect to a pixel buffer. + +``` +final static int WIDTH=128; +final static int HEIGHT=64; +final int in[] = new int[WIDTH*HEIGHT]; +final int out[] = new int[WIDTH*HEIGHT]; +Kernel kernel = new Kernel(){ + public void run(){ + int x = getGlobalId(0); + int y = getGlobalId(1); + if (x>0 && x<(getGlobalSize(0)-1) && y>0 && y<(getGlobalSize(0)-1)){ + int sum = 0; + for (int dx =-1; dx<2; dx++){ + for (int dy =-1; dy<2; dy++){ + sum+=in[(y+dy)*getGlobalSize(0)+(x+dx)]; + } + } + out[y*getGlobalSize(0)+x] = sum/9; + } + } + +}; +Range range = Range.create2D(WIDTH, HEIGHT); +kernel.execute(range); +``` + + +## Handling this from JTP mode ## + +Mapping to OpenCL for this is all fairly straightforward. + +In Java JTP mode we have to emulate the execution over the 1D, 2D and 3D ranges using threads. Note that the number of threads we launch is essentially the size of the group. So be careful creating large groups. + +If we ask for a 3D range using :- + +`Range range = Range.create3D(1024, 1024, 1024, 8, 8, 8);` + +We are asking for a group size of 8x8x8 == 512. So we are asking for 512 threads! + + + + + diff --git a/aparapi-eclipse-formatting.xml b/aparapi-eclipse-formatting.xml deleted file mode 100644 index 4a358453..00000000 --- a/aparapi-eclipse-formatting.xml +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/aparapi_90x660.jpg b/aparapi_90x660.jpg new file mode 100644 index 00000000..6160cd07 Binary files /dev/null and b/aparapi_90x660.jpg differ diff --git a/build.xml b/build.xml deleted file mode 100644 index abfbc1a3..00000000 --- a/build.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/com.amd.aparapi.jni/.cproject.example b/com.amd.aparapi.jni/.cproject.example deleted file mode 100644 index c68c1c70..00000000 --- a/com.amd.aparapi.jni/.cproject.example +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/com.amd.aparapi.jni/.project b/com.amd.aparapi.jni/.project deleted file mode 100644 index 53a281a7..00000000 --- a/com.amd.aparapi.jni/.project +++ /dev/null @@ -1,27 +0,0 @@ - - - com.amd.aparapi.jni - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/com.amd.aparapi.jni/Aparapi.sln b/com.amd.aparapi.jni/Aparapi.sln deleted file mode 100644 index 3292768f..00000000 --- a/com.amd.aparapi.jni/Aparapi.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aparapi", "Aparapi.vcxproj", "{E4CF3A3C-B1C9-5DA6-5FDB-66C42857393E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E4CF3A3C-B1C9-5DA6-5FDB-66C42857393E}.Debug|Win32.ActiveCfg = Debug|Win32 - {E4CF3A3C-B1C9-5DA6-5FDB-66C42857393E}.Debug|Win32.Build.0 = Debug|Win32 - {E4CF3A3C-B1C9-5DA6-5FDB-66C42857393E}.Release|Win32.ActiveCfg = Release|Win32 - {E4CF3A3C-B1C9-5DA6-5FDB-66C42857393E}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/com.amd.aparapi.jni/Aparapi.suo b/com.amd.aparapi.jni/Aparapi.suo deleted file mode 100644 index 79b04687..00000000 Binary files a/com.amd.aparapi.jni/Aparapi.suo and /dev/null differ diff --git a/com.amd.aparapi.jni/Aparapi.v11.suo b/com.amd.aparapi.jni/Aparapi.v11.suo deleted file mode 100644 index eff5a4ca..00000000 Binary files a/com.amd.aparapi.jni/Aparapi.v11.suo and /dev/null differ diff --git a/com.amd.aparapi.jni/Aparapi.vcxproj b/com.amd.aparapi.jni/Aparapi.vcxproj deleted file mode 100644 index 3023d478..00000000 --- a/com.amd.aparapi.jni/Aparapi.vcxproj +++ /dev/null @@ -1,98 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - Win32Proj - {E4CF3A3C-B1C9-5DA6-5FDB-66C42857393E} - - - - DynamicLibrary - true - v110 - - - DynamicLibrary - false - v110 - - - - - - - - - - - - - true - aparapi_x86 - .\dist\ - - - true - - - - _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;APARAPI_EXPORTS;%(PreprocessorDefinitions) - include;C:\Program Files\AMD APP\include;C:\Program Files\Java\jdk1.6.0_26\include;C:\Program Files\Java\jdk1.6.0_26\include\win32;%(AdditionalIncludeDirectories) - MultiThreadedDebugDLL - Level3 - ProgramDatabase - Disabled - - - MachineX86 - true - Windows - C:\Program Files\AMD APP\lib\x86;%(AdditionalLibraryDirectories) - kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;OpenCL.lib;%(AdditionalDependencies) - dist\aparapi_x86.dll - - - - - WIN32;NDEBUG;_WINDOWS;_USRDLL;APARAPI_EXPORTS;%(PreprocessorDefinitions) - C:\Program Files\AMD APP\include\CL C:\Program Files\Java\jdk1.6.0_26\include C:\Program Files\Java\jdk1.6.0_26\include\x86;%(AdditionalIncludeDirectories) - MultiThreadedDLL - Level3 - ProgramDatabase - - - MachineX86 - true - Windows - true - true - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/com.amd.aparapi.jni/Aparapi.vcxproj.filters b/com.amd.aparapi.jni/Aparapi.vcxproj.filters deleted file mode 100644 index 2de182d5..00000000 --- a/com.amd.aparapi.jni/Aparapi.vcxproj.filters +++ /dev/null @@ -1,54 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/com.amd.aparapi.jni/Aparapi.vcxproj.user b/com.amd.aparapi.jni/Aparapi.vcxproj.user deleted file mode 100644 index 695b5c78..00000000 --- a/com.amd.aparapi.jni/Aparapi.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/com.amd.aparapi.jni/Doxyfile b/com.amd.aparapi.jni/Doxyfile deleted file mode 100644 index 62d3671b..00000000 --- a/com.amd.aparapi.jni/Doxyfile +++ /dev/null @@ -1,1781 +0,0 @@ -# Doxyfile 1.7.6.1 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (" "). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# http://www.gnu.org/software/libiconv for the list of possible encodings. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or sequence of words) that should -# identify the project. Note that if you do not use Doxywizard you need -# to put quotes around the project name if it contains spaces. - -PROJECT_NAME = "Aparapi JNI" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. -# This could be handy for archiving the generated documentation or -# if some version control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer -# a quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify an logo or icon that is -# included in the documentation. The maximum height of the logo should not -# exceed 55 pixels and the maximum width should not exceed 200 pixels. -# Doxygen will copy the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) -# base path where the generated documentation will be put. -# If a relative path is entered, it will be relative to the location -# where doxygen was started. If left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create -# 4096 sub-directories (in 2 levels) under the output directory of each output -# format and will distribute the generated files over these directories. -# Enabling this option can be useful when feeding doxygen a huge amount of -# source files, where putting all generated files in the same directory would -# otherwise cause performance problems for the file system. - -CREATE_SUBDIRS = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# The default language is English, other supported languages are: -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will -# include brief member descriptions after the members that are listed in -# the file and class documentation (similar to JavaDoc). -# Set to NO to disable this. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend -# the brief description of a member or function before the detailed description. -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator -# that is used to form the text in various listings. Each string -# in this list, if found as the leading text of the brief description, will be -# stripped from the text and the result after processing the whole list, is -# used as the annotated text. Otherwise, the brief description is used as-is. -# If left blank, the following values are used ("$name" is automatically -# replaced with the name of the entity): "The $name class" "The $name widget" -# "The $name file" "is" "provides" "specifies" "contains" -# "represents" "a" "an" "the" - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# Doxygen will generate a detailed section even if there is only a brief -# description. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full -# path before files name in the file list and in the header files. If set -# to NO the shortest path that makes the file name unique will be used. - -FULL_PATH_NAMES = YES - -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag -# can be used to strip a user-defined part of the path. Stripping is -# only done if one of the specified strings matches the left-hand part of -# the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the -# path to strip. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of -# the path mentioned in the documentation of a class, which tells -# the reader which header file to include in order to use a class. -# If left blank only the name of the header file containing the class -# definition is used. Otherwise one should specify the include paths that -# are normally passed to the compiler using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter -# (but less readable) file names. This can be useful if your file system -# doesn't support long names like on DOS, Mac, or CD-ROM. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen -# will interpret the first line (until the first dot) of a JavaDoc-style -# comment as the brief description. If set to NO, the JavaDoc -# comments will behave just like regular Qt-style comments -# (thus requiring an explicit @brief command for a brief description.) - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will -# interpret the first line (until the first dot) of a Qt-style -# comment as the brief description. If set to NO, the comments -# will behave just like regular Qt-style comments (thus requiring -# an explicit \brief command for a brief description.) - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen -# treat a multi-line C++ special comment block (i.e. a block of //! or /// -# comments) as a brief description. This used to be the default behaviour. -# The new default is to treat a multi-line C++ comment block as a detailed -# description. Set this tag to YES if you prefer the old behaviour instead. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented -# member inherits the documentation from any documented member that it -# re-implements. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce -# a new page for each member. If set to NO, the documentation of a member will -# be part of the file/class/namespace that contains it. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. -# Doxygen uses this value to replace tabs by spaces in code fragments. - -TAB_SIZE = 3 - -# This tag can be used to specify a number of aliases that acts -# as commands in the documentation. An alias has the form "name=value". -# For example adding "sideeffect=\par Side Effects:\n" will allow you to -# put the command \sideeffect (or @sideeffect) in the documentation, which -# will result in a user-defined paragraph with heading "Side Effects:". -# You can put \n's in the value part of an alias to insert newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding -# "class=itcl::class" will allow you to use the command class in the -# itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C -# sources only. Doxygen will then generate output that is more tailored for C. -# For instance, some of the names that are used will be different. The list -# of all members will be omitted, etc. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java -# sources only. Doxygen will then generate output that is more tailored for -# Java. For instance, namespaces will be presented as packages, qualified -# scopes will look different, etc. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources only. Doxygen will then generate output that is more tailored for -# Fortran. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for -# VHDL. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given extension. -# Doxygen has a built-in mapping, but you can override or extend it using this -# tag. The format is ext=language, where ext is a file extension, and language -# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, -# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions -# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should -# set this tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. -# func(std::string) {}). This also makes the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. - -BUILTIN_STL_SUPPORT = YES - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. -# Doxygen will parse them like normal C++ but will assume all classes use public -# instead of private inheritance when no explicit protection keyword is present. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate getter -# and setter methods for a property. Setting this option to YES (the default) -# will make doxygen replace the get and set methods by a property in the -# documentation. This will only work if the methods are indeed getting or -# setting a simple type. If this is not the case, or you want to show the -# methods anyway, you should set this option to NO. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of -# the same type (for instance a group of public functions) to be put as a -# subgroup of that type (e.g. under the Public Functions section). Set it to -# NO to prevent subgrouping. Alternatively, this can be done per class using -# the \nosubgrouping command. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and -# unions are shown inside the group in which they are included (e.g. using -# @ingroup) instead of on a separate page (for HTML and Man pages) or -# section (for LaTeX and RTF). - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and -# unions with only public data fields will be shown inline in the documentation -# of the scope in which they are defined (i.e. file, namespace, or group -# documentation), provided this scope is documented. If set to NO (the default), -# structs, classes, and unions are shown on a separate page (for HTML and Man -# pages) or section (for LaTeX and RTF). - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum -# is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically -# be useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. - -TYPEDEF_HIDES_STRUCT = NO - -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to -# determine which symbols to keep in memory and which to flush to disk. -# When the cache is full, less often used symbols will be written to disk. -# For small to medium size projects (<1000 input files) the default value is -# probably good enough. For larger projects a too small cache size can cause -# doxygen to be busy swapping symbols to and from disk most of the time -# causing a significant performance penalty. -# If the system has enough physical memory increasing the cache will improve the -# performance by keeping more symbols in memory. Note that the value works on -# a logarithmic scale so increasing the size by one will roughly double the -# memory usage. The cache size is given by this formula: -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -SYMBOL_CACHE_SIZE = 0 - -# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be -# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given -# their name and scope. Since this can be an expensive process and often the -# same symbol appear multiple times in the code, doxygen keeps a cache of -# pre-resolved symbols. If the cache is too small doxygen will become slower. -# If the cache is too large, memory is wasted. The cache size is given by this -# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0, -# corresponding to a cache size of 2^16 = 65536 symbols. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. -# Private class members and static file members will be hidden unless -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class -# will be included in the documentation. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_STATIC tag is set to YES all static members of a file -# will be included in the documentation. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) -# defined locally in source files will be included in the documentation. -# If set to NO only classes defined in header files are included. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local -# methods, which are defined in the implementation section but not in -# the interface are included in the documentation. -# If set to NO (the default) only methods in the interface are included. - -EXTRACT_LOCAL_METHODS = YES - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base -# name of the file that contains the anonymous namespace. By default -# anonymous namespaces are hidden. - -EXTRACT_ANON_NSPACES = YES - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all -# undocumented members of documented classes, files or namespaces. -# If set to NO (the default) these members will be included in the -# various overviews, but no documentation section is generated. -# This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. -# If set to NO (the default) these classes will be included in the various -# overviews. This option has no effect if EXTRACT_ALL is enabled. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all -# friend (class|struct|union) declarations. -# If set to NO (the default) these declarations will be included in the -# documentation. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any -# documentation blocks found inside the body of a function. -# If set to NO (the default) these blocks will be appended to the -# function's detailed documentation block. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation -# that is typed after a \internal command is included. If the tag is set -# to NO (the default) then the documentation will be excluded. -# Set it to YES to include the internal documentation. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate -# file names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen -# will show members with their full class and namespace scopes in the -# documentation. If set to YES the scope will be hidden. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen -# will put a list of the files that are included by a file in the documentation -# of that file. - -SHOW_INCLUDE_FILES = YES - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen -# will list include files with double quotes in the documentation -# rather than with sharp brackets. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] -# is inserted in the documentation for inline members. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen -# will sort the (detailed) documentation of file and class members -# alphabetically by member name. If set to NO the members will appear in -# declaration order. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the -# brief documentation of file, namespace and class members alphabetically -# by member name. If set to NO (the default) the members will appear in -# declaration order. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen -# will sort the (brief and detailed) documentation of class members so that -# constructors and destructors are listed first. If set to NO (the default) -# the constructors will appear in the respective orders defined by -# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. -# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO -# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the -# hierarchy of group names into alphabetical order. If set to NO (the default) -# the group names will appear in their defined order. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be -# sorted by fully-qualified names, including namespaces. If set to -# NO (the default), the class list will be sorted only by class name, -# not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the -# alphabetical list. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to -# do proper type resolution of all parameters of a function it will reject a -# match between the prototype and the implementation of a member function even -# if there is only one candidate or it is obvious which candidate to choose -# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen -# will still accept a match between prototype and implementation in such cases. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or -# disable (NO) the todo list. This list is created by putting \todo -# commands in the documentation. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or -# disable (NO) the test list. This list is created by putting \test -# commands in the documentation. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or -# disable (NO) the bug list. This list is created by putting \bug -# commands in the documentation. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or -# disable (NO) the deprecated list. This list is created by putting -# \deprecated commands in the documentation. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional -# documentation sections, marked by \if sectionname ... \endif. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines -# the initial value of a variable or macro consists of for it to appear in -# the documentation. If the initializer consists of more lines than specified -# here it will be hidden. Use a value of 0 to hide initializers completely. -# The appearance of the initializer of individual variables and macros in the -# documentation can be controlled using \showinitializer or \hideinitializer -# command in the documentation regardless of this setting. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated -# at the bottom of the documentation of classes and structs. If set to YES the -# list will mention the files that were used to generate the documentation. - -SHOW_USED_FILES = YES - -# If the sources in your project are distributed over multiple directories -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. The default is NO. - -SHOW_DIRECTORIES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. -# This will remove the Files entry from the Quick Index and from the -# Folder Tree View (if specified). The default is YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the -# Namespaces page. -# This will remove the Namespaces entry from the Quick Index -# and from the Folder Tree View (if specified). The default is YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command , where is the value of -# the FILE_VERSION_FILTER tag, and is the name of an input file -# provided by doxygen. Whatever the program writes to standard output -# is used as the file version. See the manual for examples. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. The create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. -# You can optionally specify a file name after the option, if omitted -# DoxygenLayout.xml will be used as the name of the layout file. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files -# containing the references data. This must be a list of .bib files. The -# .bib extension is automatically appended if omitted. Using this command -# requires the bibtex tool to be installed. See also -# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style -# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this -# feature you need bibtex and perl available in the search path. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated -# by doxygen. Possible values are YES and NO. If left blank NO is used. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated by doxygen. Possible values are YES and NO. If left blank -# NO is used. - -WARNINGS = YES - -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will -# automatically be disabled. - -WARN_IF_UNDOCUMENTED = YES - -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some -# parameters in a documented function, or documenting parameters that -# don't exist or using markup commands wrongly. - -WARN_IF_DOC_ERROR = YES - -# The WARN_NO_PARAMDOC option can be enabled to get warnings for -# functions that are documented, but have no documentation for their parameters -# or return value. If set to NO (the default) doxygen will only warn about -# wrong or incomplete parameter documentation, but not about the absence of -# documentation. - -WARN_NO_PARAMDOC = NO - -# The WARN_FORMAT tag determines the format of the warning messages that -# doxygen can produce. The string should contain the $file, $line, and $text -# tags, which will be replaced by the file and line number from which the -# warning originated and the warning text. Optionally the format may contain -# $version, which will be replaced by the version of the file (if it could -# be obtained via FILE_VERSION_FILTER) - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning -# and error messages should be written. If left blank the output is written -# to stderr. - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag can be used to specify the files and/or directories that contain -# documented source files. You may enter file names like "myfile.cpp" or -# directories like "/usr/src/myproject". Separate the files or directories -# with spaces. - -INPUT = - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is -# also the default input encoding. Doxygen uses libiconv (or the iconv built -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for -# the list of possible encodings. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank the following patterns are tested: -# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh -# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py -# *.f90 *.f *.for *.vhd *.vhdl - -FILE_PATTERNS = - -# The RECURSIVE tag can be used to turn specify whether or not subdirectories -# should be searched for input files as well. Possible values are YES and NO. -# If left blank NO is used. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. Note that the wildcards are matched -# against the file with absolute path, so to exclude all test directories -# for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or -# directories that contain example code fragments that are included (see -# the \include command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp -# and *.h) to filter out the source-files in the directories. If left -# blank all files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude -# commands irrespective of the value of the RECURSIVE tag. -# Possible values are YES and NO. If left blank NO is used. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or -# directories that contain image that are included in the documentation (see -# the \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command , where -# is the value of the INPUT_FILTER tag, and is the name of an -# input file. Doxygen will then use the output that the filter program writes -# to standard output. -# If FILTER_PATTERNS is specified, this tag will be -# ignored. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. -# Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. -# The filters are a list of the form: -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further -# info on how filters are used. If FILTER_PATTERNS is empty or if -# non of the patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will be used to filter the input files when producing source -# files to browse (i.e. when SOURCE_BROWSER is set to YES). - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) -# and it is also possible to disable source filtering for a specific pattern -# using *.ext= (so without naming a filter). This option only has effect when -# FILTER_SOURCE_FILES is enabled. - -FILTER_SOURCE_PATTERNS = - -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will -# be generated. Documented entities will be cross-referenced with these sources. -# Note: To get rid of all source code in the generated output, make sure also -# VERBATIM_HEADERS is set to NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body -# of functions and classes directly in the documentation. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct -# doxygen to hide any special comment blocks from generated source code -# fragments. Normal C and C++ comments will always remain visible. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES -# then for each documented function all documented -# functions referencing it will be listed. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES -# then for each documented function all documented entities -# called/used by that function will be listed. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will -# link to the source code. -# Otherwise they will link to the documentation. - -REFERENCES_LINK_SOURCE = YES - -# If the USE_HTAGS tag is set to YES then the references to source code -# will point to the HTML generated by the htags(1) tool instead of doxygen -# built-in source browser. The htags tool is part of GNU's global source -# tagging system (see http://www.gnu.org/software/global/global.html). You -# will need version 4.8.6 or higher. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen -# will generate a verbatim copy of the header file for each class for -# which an include is specified. Set to NO to disable this. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index -# of all compounds will be generated. Enable this if the project -# contains a lot of classes, structs, unions or interfaces. - -ALPHABETICAL_INDEX = YES - -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns -# in which this list will be split (can be a number in the range [1..20]) - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all -# classes will be put under the same header in the alphabetical index. -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that -# should be ignored while generating the index headers. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will -# generate HTML output. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `html' will be used as the default path. - -HTML_OUTPUT = doc/api - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank -# doxygen will generate files with .html extension. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a personal HTML header for -# each generated HTML page. If it is left blank doxygen will generate a -# standard header. Note that when using a custom header you are responsible -# for the proper inclusion of any scripts and style sheets that doxygen -# needs, which is dependent on the configuration options used. -# It is advised to generate a default header using "doxygen -w html -# header.html footer.html stylesheet.css YourConfigFile" and then modify -# that header. Note that the header is subject to change so you typically -# have to redo this when upgrading to a newer version of doxygen or when -# changing the value of configuration settings such as GENERATE_TREEVIEW! - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a personal HTML footer for -# each generated HTML page. If it is left blank doxygen will generate a -# standard footer. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading -# style sheet that is used by each HTML page. It can be used to -# fine-tune the look of the HTML output. If the tag is left blank doxygen -# will generate a default style sheet. Note that doxygen will try to copy -# the style sheet file to the HTML output directory, so don't put your own -# style sheet in the HTML output directory as well, or it will be erased! - -HTML_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath$ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that -# the files will be copied as-is; there are no commands or markers available. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. -# Doxygen will adjust the colors in the style sheet and background images -# according to this color. Hue is specified as an angle on a colorwheel, -# see http://en.wikipedia.org/wiki/Hue for more information. -# For instance the value 0 represents red, 60 is yellow, 120 is green, -# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. -# The allowed range is 0 to 359. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of -# the colors in the HTML output. For a value of 0 the output will use -# grayscales only. A value of 255 will produce the most vivid colors. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to -# the luminance component of the colors in the HTML output. Values below -# 100 gradually make the output lighter, whereas values above 100 make -# the output darker. The value divided by 100 is the actual gamma applied, -# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, -# and 100 does not change the gamma. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting -# this to NO can help when comparing the output of multiple runs. - -HTML_TIMESTAMP = YES - -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, -# files or namespaces will be aligned in HTML using tables. If set to -# NO a bullet list will be used. - -HTML_ALIGN_MEMBERS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. For this to work a browser that supports -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). - -HTML_DYNAMIC_SECTIONS = NO - -# If the GENERATE_DOCSET tag is set to YES, additional index files -# will be generated that can be used as input for Apple's Xcode 3 -# integrated development environment, introduced with OSX 10.5 (Leopard). -# To create a documentation set, doxygen will generate a Makefile in the -# HTML output directory. Running make will produce the docset in that -# directory and running "make install" will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find -# it at startup. -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. - -GENERATE_DOCSET = NO - -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the -# feed. A documentation feed provides an umbrella under which multiple -# documentation sets from a single provider (such as a company or product suite) -# can be grouped. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that -# should uniquely identify the documentation set bundle. This should be a -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen -# will append .docset to the name. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES, additional index files -# will be generated that can be used as input for tools like the -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) -# of the generated HTML documentation. - -GENERATE_HTMLHELP = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can -# be used to specify the file name of the resulting .chm file. You -# can add a path in front of the file if the result should not be -# written to the html output directory. - -CHM_FILE = - -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can -# be used to specify the location (absolute path including file name) of -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run -# the HTML help compiler on the generated index.hhp. - -HHC_LOCATION = - -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag -# controls if a separate .chi index file is generated (YES) or that -# it should be included in the master .chm file (NO). - -GENERATE_CHI = NO - -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING -# is used to encode HtmlHelp index (hhk), content (hhc) and project file -# content. - -CHM_INDEX_ENCODING = - -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag -# controls whether a binary table of contents is generated (YES) or a -# normal table of contents (NO) in the .chm file. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members -# to the contents of the HTML help documentation and to the tree view. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated -# that can be used as input for Qt's qhelpgenerator to generate a -# Qt Compressed Help (.qch) of the generated HTML documentation. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can -# be used to specify the file name of the resulting .qch file. -# The path specified is relative to the HTML output folder. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#namespace - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating -# Qt Help Project output. For more information please see -# http://doc.trolltech.com/qthelpproject.html#virtual-folders - -QHP_VIRTUAL_FOLDER = doc - -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to -# add. For more information please see -# http://doc.trolltech.com/qthelpproject.html#custom-filters - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see -# -# Qt Help Project / Custom Filters. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's -# filter section matches. -# -# Qt Help Project / Filter Attributes. - -QHP_SECT_FILTER_ATTRS = - -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can -# be used to specify the location of Qt's qhelpgenerator. -# If non-empty doxygen will try to run qhelpgenerator on the generated -# .qhp file. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files -# will be generated, which together with the HTML files, form an Eclipse help -# plugin. To install this plugin and make it available under the help contents -# menu in Eclipse, the contents of the directory containing the HTML and XML -# files needs to be copied into the plugins directory of eclipse. The name of -# the directory within the plugins directory should be the same as -# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before -# the help appears. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have -# this name. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) -# at top of each HTML page. The value NO (the default) enables the index and -# the value YES disables it. Since the tabs have the same information as the -# navigation tree you can set this option to NO if you already set -# GENERATE_TREEVIEW to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. -# If the tag value is set to YES, a side panel will be generated -# containing a tree-like index structure (just like the one that -# is generated for HTML Help). For this to work a browser that supports -# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). -# Windows users are probably better off using the HTML help feature. -# Since the tree basically has the same information as the tab index you -# could consider to set DISABLE_INDEX to NO when enabling this option. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values -# (range [0,1..20]) that doxygen will group on one line in the generated HTML -# documentation. Note that a value of 0 will completely suppress the enum -# values from appearing in the overview section. - -ENUM_VALUES_PER_LINE = 4 - -# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, -# and Class Hierarchy pages using a tree view instead of an ordered list. - -USE_INLINE_TREES = NO - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be -# used to set the initial width (in pixels) of the frame in which the tree -# is shown. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open -# links to external symbols imported via tag files in a separate window. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of Latex formulas included -# as images in the HTML documentation. The default is 10. Note that -# when you change the font size after a successful doxygen run you need -# to manually remove any form_*.png images from the HTML output directory -# to force them to be regenerated. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are -# not supported properly for IE 6.0, but are supported on all modern browsers. -# Note that when changing this option you need to delete any form_*.png files -# in the HTML output before the changes have effect. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax -# (see http://www.mathjax.org) which uses client side Javascript for the -# rendering instead of using prerendered bitmaps. Use this if you do not -# have LaTeX installed or if you want to formulas look prettier in the HTML -# output. When enabled you also need to install MathJax separately and -# configure the path to it using the MATHJAX_RELPATH option. - -USE_MATHJAX = NO - -# When MathJax is enabled you need to specify the location relative to the -# HTML output directory using the MATHJAX_RELPATH option. The destination -# directory should contain the MathJax.js script. For instance, if the mathjax -# directory is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the -# mathjax.org site, so you can quickly see the result without installing -# MathJax, but it is strongly recommended to install a local copy of MathJax -# before deployment. - -MATHJAX_RELPATH = http://www.mathjax.org/mathjax - -# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension -# names that should be enabled during MathJax rendering. - -MATHJAX_EXTENSIONS = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box -# for the HTML output. The underlying search engine uses javascript -# and DHTML and should work on any modern browser. Note that when using -# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets -# (GENERATE_DOCSET) there is already a search function so this one should -# typically be disabled. For large projects the javascript based search engine -# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. - -SEARCHENGINE = YES - -# When the SERVER_BASED_SEARCH tag is enabled the search engine will be -# implemented using a PHP enabled web server instead of at the web client -# using Javascript. Doxygen will generate the search PHP script and index -# file to put on the web server. The advantage of the server -# based approach is that it scales better to large projects and allows -# full text search. The disadvantages are that it is more difficult to setup -# and does not have live searching capabilities. - -SERVER_BASED_SEARCH = NO - -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- - -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will -# generate Latex output. - -GENERATE_LATEX = YES - -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `latex' will be used as the default path. - -LATEX_OUTPUT = doc/latex - -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be -# invoked. If left blank `latex' will be used as the default command name. -# Note that when enabling USE_PDFLATEX this option is only used for -# generating bitmaps for formulas in the HTML output, but not in the -# Makefile that is written to the output directory. - -LATEX_CMD_NAME = latex - -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to -# generate index for LaTeX. If left blank `makeindex' will be used as the -# default command name. - -MAKEINDEX_CMD_NAME = makeindex - -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact -# LaTeX documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_LATEX = NO - -# The PAPER_TYPE tag can be used to set the paper type that is used -# by the printer. Possible values are: a4, letter, legal and -# executive. If left blank a4wide will be used. - -PAPER_TYPE = a4 - -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX -# packages that should be included in the LaTeX output. - -EXTRA_PACKAGES = - -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for -# the generated latex document. The header should contain everything until -# the first chapter. If it is left blank doxygen will generate a -# standard header. Notice: only use this tag if you know what you are doing! - -LATEX_HEADER = - -# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for -# the generated latex document. The footer should contain everything after -# the last chapter. If it is left blank doxygen will generate a -# standard footer. Notice: only use this tag if you know what you are doing! - -LATEX_FOOTER = - -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated -# is prepared for conversion to pdf (using ps2pdf). The pdf file will -# contain links (just like the HTML output) instead of page references -# This makes the output suitable for online browsing using a pdf viewer. - -PDF_HYPERLINKS = YES - -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of -# plain latex in the generated Makefile. Set this option to YES to get a -# higher quality PDF documentation. - -USE_PDFLATEX = YES - -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. -# command to the generated LaTeX files. This will instruct LaTeX to keep -# running if errors occur, instead of asking the user for help. -# This option is also used when generating formulas in HTML. - -LATEX_BATCHMODE = NO - -# If LATEX_HIDE_INDICES is set to YES then doxygen will not -# include the index chapters (such as File Index, Compound Index, etc.) -# in the output. - -LATEX_HIDE_INDICES = NO - -# If LATEX_SOURCE_CODE is set to YES then doxygen will include -# source code with syntax highlighting in the LaTeX output. -# Note that which sources are shown also depends on other settings -# such as SOURCE_BROWSER. - -LATEX_SOURCE_CODE = NO - -# The LATEX_BIB_STYLE tag can be used to specify the style to use for the -# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See -# http://en.wikipedia.org/wiki/BibTeX for more info. - -LATEX_BIB_STYLE = plain - -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- - -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output -# The RTF output is optimized for Word 97 and may not look very pretty with -# other RTF readers or editors. - -GENERATE_RTF = NO - -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `rtf' will be used as the default path. - -RTF_OUTPUT = rtf - -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact -# RTF documents. This may be useful for small projects and may help to -# save some trees in general. - -COMPACT_RTF = NO - -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated -# will contain hyperlink fields. The RTF file will -# contain links (just like the HTML output) instead of page references. -# This makes the output suitable for online browsing using WORD or other -# programs which support those fields. -# Note: wordpad (write) and others do not support links. - -RTF_HYPERLINKS = NO - -# Load style sheet definitions from file. Syntax is similar to doxygen's -# config file, i.e. a series of assignments. You only have to provide -# replacements, missing definitions are set to their default value. - -RTF_STYLESHEET_FILE = - -# Set optional variables used in the generation of an rtf document. -# Syntax is similar to doxygen's config file. - -RTF_EXTENSIONS_FILE = - -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- - -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will -# generate man pages - -GENERATE_MAN = NO - -# The MAN_OUTPUT tag is used to specify where the man pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `man' will be used as the default path. - -MAN_OUTPUT = man - -# The MAN_EXTENSION tag determines the extension that is added to -# the generated man pages (default is the subroutine's section .3) - -MAN_EXTENSION = .3 - -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, -# then it will generate one additional man file for each entity -# documented in the real man page(s). These additional files -# only source the real man page, but without them the man command -# would be unable to find the correct page. The default is NO. - -MAN_LINKS = NO - -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- - -# If the GENERATE_XML tag is set to YES Doxygen will -# generate an XML file that captures the structure of -# the code including all documentation. - -GENERATE_XML = NO - -# The XML_OUTPUT tag is used to specify where the XML pages will be put. -# If a relative path is entered the value of OUTPUT_DIRECTORY will be -# put in front of it. If left blank `xml' will be used as the default path. - -XML_OUTPUT = xml - -# The XML_SCHEMA tag can be used to specify an XML schema, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify an XML DTD, -# which can be used by a validating XML parser to check the -# syntax of the XML files. - -XML_DTD = - -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will -# dump the program listings (including syntax highlighting -# and cross-referencing information) to the XML output. Note that -# enabling this will significantly increase the size of the XML output. - -XML_PROGRAMLISTING = YES - -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- - -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will -# generate an AutoGen Definitions (see autogen.sf.net) file -# that captures the structure of the code including all -# documentation. Note that this feature is still experimental -# and incomplete at the moment. - -GENERATE_AUTOGEN_DEF = NO - -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- - -# If the GENERATE_PERLMOD tag is set to YES Doxygen will -# generate a Perl module file that captures the structure of -# the code including all documentation. Note that this -# feature is still experimental and incomplete at the -# moment. - -GENERATE_PERLMOD = NO - -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate -# the necessary Makefile rules, Perl scripts and LaTeX code to be able -# to generate PDF and DVI output from the Perl module output. - -PERLMOD_LATEX = NO - -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be -# nicely formatted so it can be parsed by a human reader. -# This is useful -# if you want to understand what is going on. -# On the other hand, if this -# tag is set to NO the size of the Perl module output will be much smaller -# and Perl will parse it just the same. - -PERLMOD_PRETTY = YES - -# The names of the make variables in the generated doxyrules.make file -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. -# This is useful so different doxyrules.make files included by the same -# Makefile don't overwrite each other's variables. - -PERLMOD_MAKEVAR_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- - -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will -# evaluate all C-preprocessor directives found in the sources and include -# files. - -ENABLE_PREPROCESSING = YES - -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro -# names in the source code. If set to NO (the default) only conditional -# compilation will be performed. Macro expansion can be done in a controlled -# way by setting EXPAND_ONLY_PREDEF to YES. - -MACRO_EXPANSION = YES - -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES -# then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_DEFINED tags. - -EXPAND_ONLY_PREDEF = NO - -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files -# pointed to by INCLUDE_PATH will be searched when a #include is found. - -SEARCH_INCLUDES = YES - -# The INCLUDE_PATH tag can be used to specify one or more directories that -# contain include files that are not input files but should be processed by -# the preprocessor. - -INCLUDE_PATH = - -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard -# patterns (like *.h and *.hpp) to filter out the header-files in the -# directories. If left blank, the patterns specified with FILE_PATTERNS will -# be used. - -INCLUDE_FILE_PATTERNS = - -# The PREDEFINED tag can be used to specify one or more macro names that -# are defined before the preprocessor is started (similar to the -D option of -# gcc). The argument of the tag is a list of macros of the form: name -# or name=definition (no spaces). If the definition and the = are -# omitted =1 is assumed. To prevent a macro definition from being -# undefined via #undef or recursively expanded use the := operator -# instead of the = operator. - -PREDEFINED = - -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then -# this tag can be used to specify a list of macro names that should be expanded. -# The macro definition that is found in the sources will be used. -# Use the PREDEFINED tag if you want to use a different macro definition that -# overrules the definition found in the source code. - -EXPAND_AS_DEFINED = - -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then -# doxygen's preprocessor will remove all references to function-like macros -# that are alone on a line, have an all uppercase name, and do not end with a -# semicolon, because these will confuse the parser if not removed. - -SKIP_FUNCTION_MACROS = YES - -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- - -# The TAGFILES option can be used to specify one or more tagfiles. -# Optionally an initial location of the external documentation -# can be added for each tagfile. The format of a tag file without -# this location is as follows: -# -# TAGFILES = file1 file2 ... -# Adding location for the tag files is done as follows: -# -# TAGFILES = file1=loc1 "file2 = loc2" ... -# where "loc1" and "loc2" can be relative or absolute paths or -# URLs. If a location is present for each tag, the installdox tool -# does not have to be run to correct the links. -# Note that each tag file must have a unique name -# (where the name does NOT include the path) -# If a tag file is not located in the directory in which doxygen -# is run, you must also specify the path to the tagfile here. - -TAGFILES = - -# When a file name is specified after GENERATE_TAGFILE, doxygen will create -# a tag file that is based on the input files it reads. - -GENERATE_TAGFILE = - -# If the ALLEXTERNALS tag is set to YES all external classes will be listed -# in the class index. If set to NO only the inherited external classes -# will be listed. - -ALLEXTERNALS = NO - -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will -# be listed. - -EXTERNAL_GROUPS = YES - -# The PERL_PATH should be the absolute path and name of the perl script -# interpreter (i.e. the result of `which perl'). - -PERL_PATH = /usr/bin/perl - -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- - -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base -# or super classes. Setting the tag to NO turns the diagrams off. Note that -# this option also works with HAVE_DOT disabled, but it is recommended to -# install and use dot, since it yields more powerful graphs. - -CLASS_DIAGRAMS = YES - -# You can define message sequence charts within doxygen comments using the \msc -# command. Doxygen will then run the mscgen tool (see -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the -# documentation. The MSCGEN_PATH tag allows you to specify the directory where -# the mscgen tool resides. If left empty the tool is assumed to be found in the -# default search path. - -MSCGEN_PATH = - -# If set to YES, the inheritance and collaboration graphs will hide -# inheritance and usage relations if the target is undocumented -# or is not a class. - -HIDE_UNDOC_RELATIONS = YES - -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is -# available from the path. This tool is part of Graphviz, a graph visualization -# toolkit from AT&T and Lucent Bell Labs. The other options in this section -# have no effect if this option is set to NO (the default) - -HAVE_DOT = YES - -# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is -# allowed to run in parallel. When set to 0 (the default) doxygen will -# base this on the number of processors available in the system. You can set it -# explicitly to a value larger than 0 to get control over the balance -# between CPU load and processing speed. - -DOT_NUM_THREADS = 0 - -# By default doxygen will use the Helvetica font for all dot files that -# doxygen generates. When you want a differently looking font you can specify -# the font name using DOT_FONTNAME. You need to make sure dot is able to find -# the font, which can be done by putting it in a standard location or by setting -# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the -# directory containing the font. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. -# The default size is 10pt. - -DOT_FONTSIZE = 10 - -# By default doxygen will tell dot to use the Helvetica font. -# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to -# set the path where dot can find it. - -DOT_FONTPATH = - -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect inheritance relations. Setting this tag to YES will force the -# CLASS_DIAGRAMS tag to NO. - -CLASS_GRAPH = YES - -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for each documented class showing the direct and -# indirect implementation dependencies (inheritance, containment, and -# class references variables) of the class with other documented classes. - -COLLABORATION_GRAPH = YES - -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen -# will generate a graph for groups, showing the direct groups dependencies - -GROUP_GRAPHS = YES - -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and -# collaboration diagrams in a style similar to the OMG's Unified Modeling -# Language. - -UML_LOOK = NO - -# If set to YES, the inheritance and collaboration graphs will show the -# relations between templates and their instances. - -TEMPLATE_RELATIONS = NO - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT -# tags are set to YES then doxygen will generate a graph for each documented -# file showing the direct and indirect include dependencies of the file with -# other documented files. - -INCLUDE_GRAPH = YES - -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each -# documented header file showing the documented files that directly or -# indirectly include this file. - -INCLUDED_BY_GRAPH = YES - -# If the CALL_GRAPH and HAVE_DOT options are set to YES then -# doxygen will generate a call dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable call graphs -# for selected functions only using the \callgraph command. - -CALL_GRAPH = YES - -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then -# doxygen will generate a caller dependency graph for every global function -# or class method. Note that enabling this option will significantly increase -# the time of a run. So in most cases it will be better to enable caller -# graphs for selected functions only using the \callergraph command. - -CALLER_GRAPH = YES - -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen -# will generate a graphical hierarchy of all classes instead of a textual one. - -GRAPHICAL_HIERARCHY = YES - -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES -# then doxygen will show the dependencies a directory has on other directories -# in a graphical way. The dependency relations are determined by the #include -# relations between the files in the directories. - -DIRECTORY_GRAPH = YES - -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. Possible values are svg, png, jpg, or gif. -# If left blank png will be used. If you choose svg you need to set -# HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible in IE 9+ (other browsers do not have this requirement). - -DOT_IMAGE_FORMAT = png - -# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to -# enable generation of interactive SVG images that allow zooming and panning. -# Note that this requires a modern browser other than Internet Explorer. -# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you -# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files -# visible. Older versions of IE do not have SVG support. - -INTERACTIVE_SVG = NO - -# The tag DOT_PATH can be used to specify the path where the dot tool can be -# found. If left blank, it is assumed the dot tool can be found in the path. - -DOT_PATH = - -# The DOTFILE_DIRS tag can be used to specify one or more directories that -# contain dot files that are included in the documentation (see the -# \dotfile command). - -DOTFILE_DIRS = - -# The MSCFILE_DIRS tag can be used to specify one or more directories that -# contain msc files that are included in the documentation (see the -# \mscfile command). - -MSCFILE_DIRS = - -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of -# nodes that will be shown in the graph. If the number of nodes in a graph -# becomes larger than this value, doxygen will truncate the graph, which is -# visualized by representing a node as a red box. Note that doxygen if the -# number of direct children of the root node in a graph is already larger than -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. - -DOT_GRAPH_MAX_NODES = 50 - -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the -# graphs generated by dot. A depth value of 3 means that only nodes reachable -# from the root by following a path via at most 3 edges will be shown. Nodes -# that lay further from the root node will be omitted. Note that setting this -# option to 1 or 2 may greatly reduce the computation time needed for large -# code bases. Also note that the size of a graph can be further restricted by -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. - -MAX_DOT_GRAPH_DEPTH = 0 - -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not -# seem to support this out of the box. Warning: Depending on the platform used, -# enabling this option may lead to badly anti-aliased labels on the edges of -# a graph (i.e. they become hard to read). - -DOT_TRANSPARENT = NO - -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output -# files in one run (i.e. multiple -o and -T options on the command line). This -# makes dot run faster, but since only newer versions of dot (>1.8.10) -# support this, this feature is disabled by default. - -DOT_MULTI_TARGETS = NO - -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will -# generate a legend page explaining the meaning of the various boxes and -# arrows in the dot generated graphs. - -GENERATE_LEGEND = YES - -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will -# remove the intermediate dot files that are used to generate -# the various graphs. - -DOT_CLEANUP = YES diff --git a/com.amd.aparapi.jni/amd64-build.xml b/com.amd.aparapi.jni/amd64-build.xml deleted file mode 100644 index abd7753d..00000000 --- a/com.amd.aparapi.jni/amd64-build.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - - Looking for ${os.name}.${compiler} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/com.amd.aparapi.jni/amd64.vs2013 b/com.amd.aparapi.jni/amd64.vs2013 deleted file mode 100644 index d8da3851..00000000 --- a/com.amd.aparapi.jni/amd64.vs2013 +++ /dev/null @@ -1,6 +0,0 @@ -sdk=C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.1A -ocl=c:\\Program Files (x86)\\AMD APP SDK\\2.9 -vs=C:\\Program Files (x86)\\Microsoft Visual Studio 12.0 -cl=${vs}\\VC\\BIN\\x86_amd64\\cl.exe -wk=C:\\Program Files (x86)\\Windows Kits\\8.1 -path=${env.PATH};${vs}\\VC\BIN\x86_amd64;${vs}\\VC\\BIN diff --git a/com.amd.aparapi.jni/build.xml b/com.amd.aparapi.jni/build.xml deleted file mode 100644 index 5a5260b0..00000000 --- a/com.amd.aparapi.jni/build.xml +++ /dev/null @@ -1,872 +0,0 @@ - - - - - - - OS Name: ${os.name} - OS Version: ${os.version} - OS Arch: ${os.arch} - Java Ver: ${java.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/com.amd.aparapi.jni/src/cpp/CLException.h b/com.amd.aparapi.jni/src/cpp/CLException.h deleted file mode 100644 index 68b05237..00000000 --- a/com.amd.aparapi.jni/src/cpp/CLException.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef CL_EXCEPTION_H -#define CL_EXCEPTION_H - -#include -#include -#include -#include "CLHelper.h" - -class CLException : public std::exception { - -private: - int _status; - std::string _message; - -public: - - ~CLException() throw () { - } - - CLException(int status, std::string message) { - _status = status; - _message = message; - } - - CLException(const CLException& cle) { - _status = cle._status; - _message = cle._message; - } - - CLException& operator=(const CLException& cle) { - _status = cle._status; - _message = cle._message; - return *this; - } - - int status() { - return _status; - } - - const char* message() { - return _message.c_str(); - } - - void printError() { - if(_message != "") { - fprintf(stderr, "!!!!!!! %s failed %s\n", message(), CLHelper::errString(status())); - } - } - - const char* what() { - return std::string("!!!!!!! " + _message + " failed " + CLHelper::errString(status()) + " \n").c_str(); - } - - static void checkCLError(cl_int status, std::string error) { - if(status != CL_SUCCESS) { - CLException(status, error).printError(); - } - } -}; - - -#endif // CL_EXCEPTION_H diff --git a/com.amd.aparapi.jni/src/cpp/CLHelper.cpp b/com.amd.aparapi.jni/src/cpp/CLHelper.cpp deleted file mode 100644 index 1d0752e7..00000000 --- a/com.amd.aparapi.jni/src/cpp/CLHelper.cpp +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Securitys website at http://www.bis.doc.gov/. - */ - -#define CLHELPER_SOURCE -#include "CLHelper.h" -#include "List.h" -#include - -void setMap(std::map& errorMap) { - errorMap[CL_SUCCESS] = "success"; - errorMap[CL_DEVICE_NOT_FOUND] = "device not found"; - errorMap[CL_DEVICE_NOT_AVAILABLE] = "device not available"; - errorMap[CL_COMPILER_NOT_AVAILABLE] = "compiler not available"; - errorMap[CL_MEM_OBJECT_ALLOCATION_FAILURE] = "mem object allocation failure"; - errorMap[CL_OUT_OF_RESOURCES] = "out of resources"; - errorMap[CL_OUT_OF_HOST_MEMORY] = "out of host memory"; - errorMap[CL_PROFILING_INFO_NOT_AVAILABLE] = "profiling not available"; - errorMap[CL_MEM_COPY_OVERLAP] = "memcopy overlaps"; - errorMap[CL_IMAGE_FORMAT_MISMATCH] = "image format mismatch"; - errorMap[CL_IMAGE_FORMAT_NOT_SUPPORTED] = "image format not supported"; - errorMap[CL_BUILD_PROGRAM_FAILURE] = "build program failed"; - errorMap[CL_MAP_FAILURE] = "map failed"; - errorMap[CL_INVALID_VALUE] = "invalid value"; - errorMap[CL_INVALID_DEVICE_TYPE] = "invalid device type"; - errorMap[CL_INVALID_PLATFORM] = "invlaid platform"; - errorMap[CL_INVALID_DEVICE] = "invalid device"; - errorMap[CL_INVALID_CONTEXT] = "invalid context"; - errorMap[CL_INVALID_QUEUE_PROPERTIES] = "invalid queue properties"; - errorMap[CL_INVALID_COMMAND_QUEUE] = "invalid command queue"; - errorMap[CL_INVALID_HOST_PTR] = "invalid host ptr"; - errorMap[CL_INVALID_MEM_OBJECT] = "invalid mem object"; - errorMap[CL_INVALID_IMAGE_FORMAT_DESCRIPTOR] = "invalid image format descriptor "; - errorMap[CL_INVALID_IMAGE_SIZE] = "invalid image size"; - errorMap[CL_INVALID_SAMPLER] = "invalid sampler"; - errorMap[CL_INVALID_BINARY] = "invalid binary"; - errorMap[CL_INVALID_BUILD_OPTIONS] = "invalid build options"; - errorMap[CL_INVALID_PROGRAM] = "invalid program "; - errorMap[CL_INVALID_PROGRAM_EXECUTABLE] = "invalid program executable"; - errorMap[CL_INVALID_KERNEL_NAME] = "invalid kernel name"; - errorMap[CL_INVALID_KERNEL_DEFINITION] = "invalid definition"; - errorMap[CL_INVALID_KERNEL] = "invalid kernel"; - errorMap[CL_INVALID_ARG_INDEX] = "invalid arg index"; - errorMap[CL_INVALID_ARG_VALUE] = "invalid arg value"; - errorMap[CL_INVALID_ARG_SIZE] = "invalid arg size"; - errorMap[CL_INVALID_KERNEL_ARGS] = "invalid kernel args"; - errorMap[CL_INVALID_WORK_DIMENSION ] = "invalid work dimension"; - errorMap[CL_INVALID_WORK_GROUP_SIZE] = "invalid work group size"; - errorMap[CL_INVALID_WORK_ITEM_SIZE] = "invalid work item size"; - errorMap[CL_INVALID_GLOBAL_OFFSET] = "invalid global offset"; - errorMap[CL_INVALID_EVENT_WAIT_LIST] = "invalid event wait list"; - errorMap[CL_INVALID_EVENT] = "invalid event"; - errorMap[CL_INVALID_OPERATION] = "invalid operation"; - errorMap[CL_INVALID_GL_OBJECT] = "invalid gl object"; - errorMap[CL_INVALID_BUFFER_SIZE] = "invalid buffer size"; - errorMap[CL_INVALID_MIP_LEVEL] = "invalid mip level"; - errorMap[CL_INVALID_GLOBAL_WORK_SIZE] = "invalid global work size"; - errorMap[0] = NULL; -} - -const char *CLHelper::errString(cl_int status) { - static bool mapSet = false; - static std::map errorMap; - if(!mapSet) { - setMap(errorMap); - mapSet = true; - } - if(errorMap.find(status) != errorMap.end()) { - return errorMap[status]; - } - - //if we don't know what the error is - static char unknown[25]; -#ifdef _WIN32 - _snprintf(unknown, sizeof(unknown), "unknown error %d", status); -#else - snprintf(unknown, sizeof(unknown), "unknown error %d", status); -#endif - return (const char*)unknown; -} - -void CLHelper::getBuildErr(JNIEnv *jenv, cl_device_id deviceId, cl_program program, jstring *log){ - size_t buildLogSize = 0; - clGetProgramBuildInfo(program, deviceId, CL_PROGRAM_BUILD_LOG, buildLogSize, NULL, &buildLogSize); - char * buildLog = new char[buildLogSize]; - memset(buildLog, 0, buildLogSize); - clGetProgramBuildInfo (program, deviceId, CL_PROGRAM_BUILD_LOG, buildLogSize, buildLog, NULL); - fprintf(stderr, "clBuildProgram failed"); - fprintf(stderr, "\n************************************************\n"); - fprintf(stderr, "%s", buildLog); - fprintf(stderr, "\n************************************************\n\n\n"); - if (log != NULL){ - *log = jenv->NewStringUTF(buildLog); - } - delete []buildLog; -} - -cl_program CLHelper::compile(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceIds, jstring source, jstring* log, cl_int* status){ - const char *sourceChars = jenv->GetStringUTFChars(source, NULL); - size_t sourceSize[] = { strlen(sourceChars) }; - cl_program program = clCreateProgramWithSource(context, 1, &sourceChars, sourceSize, status); - jenv->ReleaseStringUTFChars(source, sourceChars); - *status = clBuildProgram(program, deviceCount, deviceIds, NULL, NULL, NULL); - if(*status == CL_BUILD_PROGRAM_FAILURE) { - getBuildErr(jenv, *deviceIds, program, log); - } - return(program); -} - -jstring CLHelper::getExtensions(JNIEnv *jenv, cl_device_id deviceId, cl_int *status){ - jstring jextensions = NULL; - size_t retvalsize = 0; - *status = clGetDeviceInfo(deviceId, CL_DEVICE_EXTENSIONS, 0, NULL, &retvalsize); - if (*status == CL_SUCCESS){ - char* extensions = new char[retvalsize]; - *status = clGetDeviceInfo(deviceId, CL_DEVICE_EXTENSIONS, retvalsize, extensions, NULL); - if (*status == CL_SUCCESS){ - jextensions = jenv->NewStringUTF(extensions); - } - delete [] extensions; - } - return jextensions; -} - - diff --git a/com.amd.aparapi.jni/src/cpp/CLHelper.h b/com.amd.aparapi.jni/src/cpp/CLHelper.h deleted file mode 100644 index d1581e9e..00000000 --- a/com.amd.aparapi.jni/src/cpp/CLHelper.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security�s website at http://www.bis.doc.gov/. - */ - -#ifndef CLHELPER_H -#define CLHELPER_H - -#include "Common.h" - -class CLHelper{ - public: - static const char *errString(cl_int status); - static void getBuildErr(JNIEnv *jenv, cl_device_id deviceId, cl_program program, jstring *log); - static cl_program compile(JNIEnv *jenv, cl_context context, size_t deviceCount, cl_device_id* deviceId, jstring source, jstring* log, cl_int *status); - static jstring getExtensions(JNIEnv *jenv, cl_device_id deviceId, cl_int *status); -}; - -#endif // CLHELPER_H - diff --git a/com.amd.aparapi.jni/src/cpp/Common.h b/com.amd.aparapi.jni/src/cpp/Common.h deleted file mode 100644 index 1abcb7e9..00000000 --- a/com.amd.aparapi.jni/src/cpp/Common.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Securitys website at http://www.bis.doc.gov/. - */ - -#ifndef COMMON_H -#define COMMON_H - -#include -#include -#include -#include - -#ifndef __APPLE__ -#include -#endif - -#include -#ifndef _WIN32 -#include -#endif - -#ifndef __APPLE__ -#include -#else -#include -#endif - -#include - -#if defined (_WIN32) -#include "windows.h" -#define alignedMalloc(size, alignment)\ - _aligned_malloc(size, alignment) -#else -#define alignedMalloc(size, alignment)\ - memalign(alignment, size) -#endif - -#endif // COMMON_H diff --git a/com.amd.aparapi.jni/src/cpp/JNIHelper.cpp b/com.amd.aparapi.jni/src/cpp/JNIHelper.cpp deleted file mode 100644 index c4d9f59e..00000000 --- a/com.amd.aparapi.jni/src/cpp/JNIHelper.cpp +++ /dev/null @@ -1,176 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Securitys website at http://www.bis.doc.gov/. - */ - -#include "Common.h" -#define JNI_SOURCE -#include "JNIHelper.h" - -void JNIHelper::callVoid(JNIEnv *jenv, jobject instance, const char *methodName, const char *methodSignature, ...){ - try { - jclass theClass = jenv->GetObjectClass(instance); - if (theClass == NULL || jenv->ExceptionCheck()) - throw std::string("bummer! getting class from instance"); - - jmethodID methodId= jenv->GetMethodID(theClass,methodName,methodSignature); - if (methodId == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting method '") + methodName + "', '" + methodSignature + "' from instance"; - - va_list argp; - va_start(argp, methodSignature); - jenv->CallVoidMethodV(instance, methodId, argp); - va_end(argp); - - if (jenv->ExceptionCheck()) - throw std::string("bummer calling '") + methodName + "' '" + methodSignature; - - } catch(std::string& s) { - jenv->ExceptionDescribe(); /* write to console */ - jenv->ExceptionClear(); - fprintf(stderr, "%s\n", s.c_str()); - } -} - -jobject JNIHelper::callObject(JNIEnv *jenv, jobject instance, const char *methodName, const char *methodSignature, ...){ - jobject value = NULL; - try { - jclass theClass = jenv->GetObjectClass(instance); - if (theClass == NULL || jenv->ExceptionCheck()) - throw std::string("bummer! getting class from instance"); - - jmethodID methodId= jenv->GetMethodID(theClass,methodName,methodSignature); - if (methodId == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting method '") + methodName + "', '" + methodSignature + "' from instance"; - - va_list argp; - va_start(argp, methodSignature); - jobject value = jenv->CallObjectMethodV(instance, methodId, argp); - va_end(argp); - - if (jenv->ExceptionCheck()) - throw std::string("bummer calling '") + methodName + "' '" + methodSignature; - - } catch(std::string& s) { - jenv->ExceptionDescribe(); /* write to console */ - jenv->ExceptionClear(); - fprintf(stderr, "%s\n", s.c_str()); - return 0L; - } - - return value; -} - -jlong JNIHelper::callLong(JNIEnv *jenv, jobject instance, const char *methodName, const char *methodSignature, ...){ - jlong value = 0L; - try { - jclass theClass = jenv->GetObjectClass(instance); - if (theClass == NULL || jenv->ExceptionCheck()) - throw std::string("bummer! getting class from instance"); - - jmethodID methodId = jenv->GetMethodID(theClass,methodName,methodSignature); - if (methodId == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting method '") + methodName + "', '" + methodSignature + "' from instance"; - - va_list argp; - va_start(argp, methodSignature); - jlong value = jenv->CallLongMethodV(instance, methodId, argp); - va_end(argp); - - if (jenv->ExceptionCheck()) - throw std::string("bummer calling '") + methodName + "' '" + methodSignature; - - } catch(std::string& s) { - jenv->ExceptionDescribe(); /* write to console */ - jenv->ExceptionClear(); - fprintf(stderr, "%s\n", s.c_str()); - return 0L; - } - return value; -} - -jobject JNIHelper::getStaticFieldObject(JNIEnv *jenv, const char *className, const char *fieldName, const char *signature){ - jobject value = NULL; - try { - jclass theClass = jenv->FindClass(className); - if (theClass == NULL || jenv->ExceptionCheck()) - throw std::string("bummer! getting '") + className; - - jfieldID fieldId = jenv->GetStaticFieldID(theClass,fieldName,signature); - if (fieldId == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting static field '") + fieldName + "' from '" + className + "' with signature! '" + signature; - - value = jenv->GetStaticObjectField(theClass, fieldId); - if (value == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting static field value '") + fieldName + "' from '" + className + "' with signature! '" + signature; - - } catch(std::string& s) { - jenv->ExceptionDescribe(); - jenv->ExceptionClear(); - fprintf(stderr, "%s\n", s.c_str()); - return(NULL); - } - - return(value); -} - -jobject JNIHelper::createInstance(JNIEnv *jenv, const char* className, const char *signature, ... ){ - jobject instance; - try { - jclass theClass = jenv->FindClass(className); - if (theClass == NULL || jenv->ExceptionCheck()) - throw std::string("bummer! getting '") + className; - - jmethodID constructor = jenv->GetMethodID(theClass,"",signature); - if (constructor == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting constructor from '") + className + "' with signature! '" + signature; - - va_list argp; - va_start(argp, signature); - instance = jenv->NewObjectV(theClass, constructor, argp); - va_end(argp); - - if (instance == NULL || jenv->ExceptionCheck()) - throw std::string("bummer invoking constructor from '") + className + "' with signature! '" + signature; - - } catch(std::string& s) { - jenv->ExceptionDescribe(); - jenv->ExceptionClear(); - fprintf(stderr, "%s\n", s.c_str()); - return(NULL); - } - return(instance); -} diff --git a/com.amd.aparapi.jni/src/cpp/JNIHelper.h b/com.amd.aparapi.jni/src/cpp/JNIHelper.h deleted file mode 100644 index 2e7e3313..00000000 --- a/com.amd.aparapi.jni/src/cpp/JNIHelper.h +++ /dev/null @@ -1,254 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security�s website at http://www.bis.doc.gov/. - */ - -#ifndef JNIHELPER_H -#define JNIHELPER_H - -#include -#include -#include "CLException.h" -#define JavaLangPackage(name) "java/lang/" name -#define JavaUtilPackage(name) "java/util/" name -#define AparapiPackage(name) "com/amd/aparapi/" name -#define AparapiDevicePackage(name) "com/amd/aparapi/device/" name -#define AparapiOpenCLPackage(name) "com/amd/aparapi/internal/opencl/" name -#define AparapiUtilPackage(name) "com/amd/aparapi/internal/util/" name - -#define ProfileInfoClass AparapiPackage("ProfileInfo") -#define OpenCLKernelClass AparapiOpenCLPackage("OpenCLKernel") -#define OpenCLPlatformClass AparapiOpenCLPackage("OpenCLPlatform") -#define OpenCLDeviceClass AparapiDevicePackage("OpenCLDevice") -#define OpenCLProgramClass AparapiOpenCLPackage("OpenCLProgram") -#define OpenCLArgDescriptorClass AparapiOpenCLPackage("OpenCLArgDescriptor") -#define OpenCLMemClass AparapiOpenCLPackage("OpenCLMem") -#define StringClass JavaLangPackage("String") -#define ObjectClass JavaLangPackage("Object") -#define ListClass JavaUtilPackage("List") -#define ArrayListClass JavaUtilPackage("ArrayList") -#define DeviceTypeClass AparapiDevicePackage("Device$TYPE") - -#define ARG(name) "L" name ";" - -#define ProfileInfoClassArg ARG(ProfileInfoClass) -#define OpenCLKernelClassArg ARG(OpenCLKernelClass) -#define OpenCLPlatformClassArg ARG(OpenCLPlatformClass) -#define OpenCLDeviceClassArg ARG(OpenCLDeviceClass) -#define OpenCLProgramClassArg ARG(OpenCLProgramClass) -#define OpenCLArgDescriptorClassArg ARG(OpenCLArgDescriptorClass) -#define OpenCLMemClassArg ARG(OpenCLMemClass) -#define StringClassArg ARG(StringClass) -#define ObjectClassArg ARG(ObjectClass) -#define ListClassArg ARG(ListClass) -#define ArrayListClassArg ARG(ArrayListClass) -#define DeviceTypeClassArg ARG(DeviceTypeClass) -#define LongArg "J" -#define IntArg "I" -#define ArrayArg(name) "[" ARG(name) - -#define Args(name) "(" name ")" - -#define ArgsVoidReturn(name) Args(name)"V" -#define ArgsBooleanReturn(name) Args(name)"Z" - -#define VoidReturn ArgsVoidReturn("") - -#define JNI_JAVA(type, className, methodName) JNIEXPORT type JNICALL Java_com_amd_aparapi_internal_jni_##className##_##methodName - -class JNIHelper { - - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jint* value) { - jenv->SetIntField(instance, fieldId, *value); - } - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jfloat* value) { - jenv->SetFloatField(instance, fieldId, *value); - } - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jdouble* value) { - jenv->SetDoubleField(instance, fieldId, *value); - } - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jshort* value) { - jenv->SetShortField(instance, fieldId, *value); - } - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jlong* value) { - jenv->SetLongField(instance, fieldId, *value); - } - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jobject* value) { - jenv->SetObjectField(instance, fieldId, *value); - } - static void setField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jboolean* value) { - jenv->SetBooleanField(instance, fieldId, *value); - } - - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jint* value) { - *value = jenv->GetIntField(instance, fieldId); - } - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jfloat* value) { - *value = jenv->GetFloatField(instance, fieldId); - } - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jdouble* value) { - *value = jenv->GetDoubleField(instance, fieldId); - } - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jshort* value) { - *value = jenv->GetShortField(instance, fieldId); - } - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jlong* value) { - *value = jenv->GetLongField(instance, fieldId); - } - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jobject* value) { - *value = jenv->GetObjectField(instance, fieldId); - } - static void getField(JNIEnv* jenv, jobject instance, jfieldID fieldId, jboolean* value) { - *value = jenv->GetBooleanField(instance, fieldId); - } - - static const char* getSignature(jint value) { - return "I"; - } - static const char* getSignature(jfloat value) { - return "F"; - } - static const char* getSignature(jdouble value) { - return "D"; - } - static const char* getSignature(jshort value) { - return "H"; - } - static const char* getSignature(jlong value) { - return "J"; - } - static const char* getSignature(jboolean value) { - return "Z"; - } - - - public: - static void callVoid(JNIEnv *jenv, jobject instance, const char *methodName, const char *methodSignature, ...); - static jlong callLong(JNIEnv *jenv, jobject instance, const char *methodName, const char *methodSignature, ...); - static jobject callObject(JNIEnv *jenv, jobject instance, const char *methodName, const char *methodSignature, ...); - - static jobject createInstance(JNIEnv *jenv, const char *className, const char *signature, ... ); - - static jobject getStaticFieldObject(JNIEnv *jenv, const char *className, const char *fieldName, const char *signature); - - static const char *getType(jint value) { - return "int"; - } - static const char *getType(jfloat value) { - return "float"; - } - static const char *getType(jdouble value) { - return "double"; - } - static const char *getType(jshort value) { - return "short"; - } - static const char *getType(jlong value) { - return "long"; - } - static const char *getType(jobject value) { - return "object"; - } - static const char *getType(jboolean value) { - return "boolean"; - } - - //these have to go here, because they're templated - - template - static void setInstanceField(JNIEnv* jenv, jobject instance, const char *fieldName, jT value) { - return setInstanceField(jenv, instance, fieldName, getSignature(value), value); - } - - template - static void setInstanceField(JNIEnv* jenv, jobject instance, const char *fieldName, const char* signature, jT value) { - try { - jclass theClass = jenv->GetObjectClass(instance); - if (theClass == NULL || jenv->ExceptionCheck()) - throw "bummer! getting class from instance\n"; - jfieldID fieldId = jenv->GetFieldID(theClass,fieldName,signature); - if (fieldId == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting ") + getType(value) + " field '" + fieldName + "'\n"; - setField(jenv, instance, fieldId, &value); - if (jenv->ExceptionCheck()) - throw std::string("bummer setting ") + getType(value) + " field '" + fieldName + "'\n"; - } catch(std::string& se) { - jenv->ExceptionDescribe(); - jenv->ExceptionClear(); - fprintf(stderr,"%s",se.c_str()); - } - } - - template - static jT getInstanceField(JNIEnv *jenv, jobject instance, const char *fieldName) { - return getInstanceField(jenv, instance, fieldName, getSignature((jT)0)); - } - - template - static jT getInstanceField(JNIEnv *jenv, jobject instance, const char *fieldName, const char *signature) { - jT value = (jT)0; - try { - jclass theClass = jenv->GetObjectClass(instance); - if (theClass == NULL || jenv->ExceptionCheck()) - throw "bummer! getting class from instance\n"; - jfieldID fieldId = jenv->GetFieldID(theClass,fieldName, signature); - if (fieldId == NULL || jenv->ExceptionCheck()) - throw std::string("bummer getting ") + getType(value) + "field '" + fieldName + "' \n"; - getField(jenv, instance, fieldId, &value); - if (jenv->ExceptionCheck()) - throw std::string("bummer getting ") + getType(value) + "field '" + fieldName + "' \n"; - } catch(std::string& se) { - jenv->ExceptionDescribe(); - jenv->ExceptionClear(); - fprintf(stderr,"%s",se.c_str()); - return (jT)NULL; - } - return(value); - } - - - static jfieldID GetFieldID(JNIEnv* jenv, jclass c, const char* name, const char* type) { - jfieldID field = jenv->GetFieldID(c, name, type); - if(field == 0) { - fprintf(stderr, "!!!!!!! no such field as %s: failed !!!!!!!\n", name);\ - } - return field; - } - -}; - -#endif // JNIHELPER_H - diff --git a/com.amd.aparapi.jni/src/cpp/agent.cpp b/com.amd.aparapi.jni/src/cpp/agent.cpp deleted file mode 100644 index 5c14e877..00000000 --- a/com.amd.aparapi.jni/src/cpp/agent.cpp +++ /dev/null @@ -1,166 +0,0 @@ -#include -#include -#include -#include -#include - -#include "classtools.h" - -jvmtiEnv *jvmti; -JavaVM *jvm; - -static void JNICALL vmInit(jvmtiEnv *_jvmtiEnv, JNIEnv* _jniEnv, jthread thread) { - fprintf(stdout, "from agent vmInit()\n"); - /* - if (_jniEnv->ExceptionOccurred()) { - fprintf(stdout, "Exception raised\n"); - _jniEnv->ExceptionDescribe(); - _jniEnv->ExceptionClear(); - } - jclass classId = _jniEnv->FindClass("C"); - classId = _jniEnv->FindClass("java/lang/String"); - if (_jniEnv->ExceptionOccurred()) { - fprintf(stdout, "Exception raised\n"); - _jniEnv->ExceptionDescribe(); - _jniEnv->ExceptionClear(); - } - */ -} - -class NameToBytes{ - private: - char *name; - ByteBuffer *byteBuffer; - NameToBytes* next; - public: - NameToBytes(NameToBytes *_head, char *_name, ByteBuffer *_byteBuffer) - : byteBuffer(_byteBuffer) { - int nameLen = strlen(_name)+1; - name = new char [nameLen]; - memcpy((void*)name, (void*)_name, nameLen); - for (char *ptr = (char *)name; *ptr; ptr++){ - if (*ptr == '/'){ - *ptr = '.'; - } - } - next = _head; - } - ~NameToBytes(){ - delete name; - } - char *getName(){ - return(name); - } - NameToBytes *getNext(){ - return(next); - } - ByteBuffer *getByteBuffer(){ - return(byteBuffer); - } -}; - -NameToBytes *head = NULL; - -/* - * Class: com_amd_aparapi_OpenCLJNI - * Method: getClassBytes - * Signature: (Ljava/lang/String;)V - */ -#ifdef __cplusplus -extern "C" { -#endif - JNIEXPORT jbyteArray JNICALL Java_com_amd_aparapi_OpenCLJNI_getBytes (JNIEnv *jenv, jobject instance, jstring className){ - jbyteArray bytes = NULL; - const char *nameChars = jenv->GetStringUTFChars(className, NULL); - fprintf(stdout, "inside getBytes(\"%s\")\n", nameChars); - for (NameToBytes *ptr = head; ptr != NULL; ptr=(NameToBytes *)ptr->getNext()){ - if (isKernel((char *)ptr->getName(), ptr->getByteBuffer())){ - fprintf(stdout, "%s is a kernel!\n", ptr->getName()); - } - //fprintf(stdout, "testing \"%s\"==\"%s\"\n", nameChars, ptr->getName()); - if (!strcmp(ptr->getName(), nameChars)){ - fprintf(stdout, "found bytes for \"%s\"\n", nameChars); - ByteBuffer *byteBuffer = ptr->getByteBuffer(); - bytes = jenv->NewByteArray(byteBuffer->getLen()); - //fprintf(stdout, "created byte array size= %d\n", ptr->getLen()); - jenv->SetByteArrayRegion(bytes, (jint)0, (jint)byteBuffer->getLen() , (jbyte*)byteBuffer->getBytes()); - break; - } - } - if (bytes == NULL){ - fprintf(stdout, "failed to find bytes for \"%s\"\n", nameChars); - } - jenv->ReleaseStringUTFChars(className, nameChars); - return (bytes); - } -#ifdef __cplusplus -} -#endif - - - - - -static void JNICALL cbClassFileLoadHook(jvmtiEnv *jvmti_env, JNIEnv* jni_env, - jclass class_being_redefined, - jobject loader, - const char* name, - jobject protection_domain, - jint class_data_len, - const unsigned char* class_data, - jint* new_class_data_len, - unsigned char** new_class_data){ - // fprintf(stdout, "from agent classFileLoadHook(%s)\n", name); - ByteBuffer *byteBuffer = new ByteBuffer((byte_t *)class_data, (size_t)class_data_len); - head = new NameToBytes(head, (char *)name, byteBuffer); - //fprintf(stdout, "class \"%s\" ", name); -} - - -JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) { - jint returnValue = 0; // OK - jint rc; - jvmtiError err; - jvmtiCapabilities capabilities; - jvmtiEventCallbacks callbacks; - fprintf(stdout, "Agent_Onload()\n"); - - // Get a handle on the JVM. - jvm = vm; - - /* Get JVMTI environment */ - rc = vm->GetEnv((void **)&jvmti, JVMTI_VERSION); - if (rc != JNI_OK) { - fprintf(stderr, "ERROR: Unable to create jvmtiEnv, GetEnv failed, error=%d\n", rc); - returnValue = -1; - }else{ - /* Get/Add JVMTI capabilities */ - if ((err = jvmti->GetCapabilities(&capabilities) ) != JVMTI_ERROR_NONE) { - fprintf(stderr, "ERROR: GetCapabilities failed, error=%d\n", err); - returnValue = -1; - }else{ - capabilities.can_tag_objects = 1; - capabilities.can_generate_all_class_hook_events = 1; - if ((err = jvmti->AddCapabilities(&capabilities))!= JVMTI_ERROR_NONE) { - fprintf(stderr, "ERROR: AddCapabilities failed, error=%d\n", err); - returnValue = -1; - }else{ - /* Set callbacks and enable event notifications */ - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.VMInit = &vmInit; - callbacks.ClassFileLoadHook = &cbClassFileLoadHook; - - jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)); - jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL); - jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL); - } - } - } - return returnValue; -} - -/* Agent_OnUnload() is called last */ -JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm) { - fprintf(stdout, "Agent_OnUnload()\n"); -} - diff --git a/com.amd.aparapi.jni/src/cpp/classtools.cpp b/com.amd.aparapi.jni/src/cpp/classtools.cpp deleted file mode 100644 index dbdab31b..00000000 --- a/com.amd.aparapi.jni/src/cpp/classtools.cpp +++ /dev/null @@ -1,599 +0,0 @@ - - -#define CLASSTOOLS_CPP -#include "classtools.h" - -#include -#include -#include -#define SHOW - -u1_t ByteBuffer::u1(byte_t *ptr){ - u1_t u1 = (u1_t) (*ptr & 0xff); - // fprintf(stderr, "u1 %01x\n", u1); - return (u1); -} -u2_t ByteBuffer::u2(byte_t *ptr){ - u2_t u2 = (u1(ptr)<<8)|u1(ptr+1); - // fprintf(stderr, "u2 %02x\n", u2); - return (u2); -} -u4_t ByteBuffer::u4(byte_t *ptr){ - u4_t u4 = (u2(ptr)<<16)|u2(ptr+2); - // fprintf(stderr, "u4 %04x\n", u4); - return (u4); -} -s4_t ByteBuffer::s4(byte_t *ptr){ - u4s4f4_u u4s4f4; - u4s4f4.u4 = u4(ptr); - // fprintf(stderr, "u4 %04x\n", u4); - return (u4s4f4.s4); -} -f4_t ByteBuffer::f4(byte_t *ptr){ - u4s4f4_u u4s4f4; - u4s4f4.u4 = u4(ptr); - // fprintf(stderr, "u4 %04x\n", u4); - return (u4s4f4.f4); -} -u8_t ByteBuffer::u8(byte_t *ptr){ - u8_t u8 = (((u8_t)u4(ptr))<<32)|u4(ptr+4); - // fprintf(stderr, "u8 %08lx\n", u8); - return (u8); -} -s8_t ByteBuffer::s8(byte_t *ptr){ - u8s8f8_u u8s8f8; - u8s8f8.u8 = u8(ptr); - // fprintf(stderr, "u8 %08x\n", u8); - return (u8s8f8.s8); -} -f8_t ByteBuffer::f8(byte_t *ptr){ - u8s8f8_u u8s8f8; - u8s8f8.u8 = u8(ptr); - // fprintf(stderr, "u8 %08x\n", u8); - return (u8s8f8.f8); -} -ByteBuffer::ByteBuffer(byte_t *_bytes, size_t _len) - : len(_len), bytes(new byte_t[len]), ptr(bytes){ - memcpy((void*)bytes, (void*)_bytes, len); - } -ByteBuffer::~ByteBuffer(){ - delete bytes; -} -byte_t *ByteBuffer::getBytes(){ - return(bytes); -} -size_t ByteBuffer::getLen(){ - return(len); -} -u1_t ByteBuffer::u1(){ - u1_t value = u1(ptr); ptr+=1; - return (value); -} -u2_t ByteBuffer::u2(){ - u2_t value = u2(ptr); ptr+=2; - return (value); -} -u4_t ByteBuffer::u4(){ - u4_t value = u4(ptr); ptr+=4; - return (value); -} -f4_t ByteBuffer::f4(){ - f4_t value = f4(ptr); ptr+=4; - return (value); -} -s4_t ByteBuffer::s4(){ - s4_t value = s4(ptr); ptr+=4; - return (value); -} -u8_t ByteBuffer::u8(){ - u8_t value = u8(ptr); ptr+=8; - return (value); -} -f8_t ByteBuffer::f8(){ - f8_t value = f8(ptr); ptr+=8; - return (value); -} -s8_t ByteBuffer::s8(){ - s8_t value = s8(ptr); ptr+=8; - return (value); -} - -byte_t *ByteBuffer::getBytes(int _len){ - byte_t *buf = NULL; - if (_len > 0){ - buf = new byte_t[_len]; - } - memcpy((void*)buf, (void*)ptr, _len); - ptr+=_len; - return(buf); -} - - -ConstantPoolEntry::ConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot, ConstantPoolType _constantPoolType) - : slot(_slot), constantPoolType(_constantPoolType) { - } - -ConstantPoolType ConstantPoolEntry::getConstantPoolType() { - return (constantPoolType); -} - -u4_t ConstantPoolEntry::getSlot() { - return (slot); -} - -EmptyConstantPoolEntry::EmptyConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, EMPTY) { - } - -UTF8ConstantPoolEntry::UTF8ConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, UTF8) { - len = (size_t)_byteBuffer->u2(); - utf8Bytes = _byteBuffer->getBytes(len); - } -size_t UTF8ConstantPoolEntry::getLen() { - return(len); -} -byte_t *UTF8ConstantPoolEntry::getUTF8Bytes() { - return(utf8Bytes); -} -void UTF8ConstantPoolEntry::write(FILE *file){ - fprintf(file, "len %d \"", (int)len); - if (len != 0 && utf8Bytes != NULL){ - for (unsigned int i=0; is4(); - } -s4_t IntegerConstantPoolEntry::getValue(){ - return(value); -} - -FloatConstantPoolEntry::FloatConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, FLOAT) { - value = _byteBuffer->f4(); - } -f4_t FloatConstantPoolEntry::getValue(){ - return(value); -} - -DoubleConstantPoolEntry::DoubleConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, DOUBLE) { - value = _byteBuffer->f8(); - } -f8_t DoubleConstantPoolEntry::getValue(){ - return(value); -} - -LongConstantPoolEntry::LongConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, LONG) { - value = _byteBuffer->s8(); - } -s8_t LongConstantPoolEntry::getValue(){ - return(value); -} - -ClassConstantPoolEntry::ClassConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, CLASS) { - nameIndex = _byteBuffer->u2(); - } -u2_t ClassConstantPoolEntry::getNameIndex(){ - return(nameIndex); -} - - -ReferenceConstantPoolEntry::ReferenceConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot, ConstantPoolType _constantPoolType) - : ConstantPoolEntry(_byteBuffer, _slot, _constantPoolType) { - referenceClassIndex = _byteBuffer->u2(); - nameAndTypeIndex = _byteBuffer->u2(); - } -u2_t ReferenceConstantPoolEntry::getReferenceClassIndex(){ - return(referenceClassIndex); -} -u2_t ReferenceConstantPoolEntry::getNameAndTypeIndex(){ - return(nameAndTypeIndex); -} - -FieldConstantPoolEntry::FieldConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ReferenceConstantPoolEntry(_byteBuffer, _slot, FIELD) { - } - -MethodReferenceConstantPoolEntry::MethodReferenceConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot, ConstantPoolType _constantPoolType) - : ReferenceConstantPoolEntry(_byteBuffer, _slot, _constantPoolType) { - } - -MethodConstantPoolEntry::MethodConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : MethodReferenceConstantPoolEntry(_byteBuffer, _slot, METHOD) { - } - -InterfaceMethodConstantPoolEntry::InterfaceMethodConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : MethodReferenceConstantPoolEntry(_byteBuffer, _slot, INTERFACEMETHOD) { - } - -NameAndTypeConstantPoolEntry::NameAndTypeConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, NAMEANDTYPE) { - descriptorIndex = _byteBuffer->u2(); - nameIndex = _byteBuffer->u2(); - } -u2_t NameAndTypeConstantPoolEntry::getDescriptorIndex(){ - return(descriptorIndex); -} -u2_t NameAndTypeConstantPoolEntry::getNameIndex(){ - return(nameIndex); -} - - -MethodTypeConstantPoolEntry::MethodTypeConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, METHODTYPE) { - descriptorIndex = _byteBuffer->u2(); - } -u2_t MethodTypeConstantPoolEntry::getDescriptorIndex(){ - return(descriptorIndex); -} - -MethodHandleConstantPoolEntry::MethodHandleConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, METHODHANDLE) { - referenceKind = _byteBuffer->u1(); - referenceIndex = _byteBuffer->u2(); - } -u1_t MethodHandleConstantPoolEntry::getReferenceKind(){ - return(referenceKind); -} -u2_t MethodHandleConstantPoolEntry::getReferenceIndex(){ - return(referenceIndex); -} - -StringConstantPoolEntry::StringConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, STRING) { - utf8Index = _byteBuffer->u2(); - } -u2_t StringConstantPoolEntry::getUtf8Index(){ - return(utf8Index); -} - -InvokeDynamicConstantPoolEntry::InvokeDynamicConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) - : ConstantPoolEntry(_byteBuffer, _slot, INVOKEDYNAMIC) { - bootstrapMethodAttrIndex = _byteBuffer->u2(); - nameAndTypeIndex = _byteBuffer->u2(); - } -u2_t InvokeDynamicConstantPoolEntry::getBootStrapMethodAttrIndex(){ - return(bootstrapMethodAttrIndex); -} -u2_t InvokeDynamicConstantPoolEntry::getNameAndTypeIndex(){ - return(nameAndTypeIndex); -} - -LineNumberTableAttribute::LineNumberTableEntry::LineNumberTableEntry(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - start_pc = _byteBuffer->u2(); - line_number = _byteBuffer->u2(); -} - -LineNumberTableAttribute::LineNumberTableAttribute(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - line_number_table_length = _byteBuffer->u2(); - lineNumberTable = new LineNumberTableEntry *[line_number_table_length]; -#ifdef SHOW - fprintf(stdout, "%d line numbers", line_number_table_length); -#endif - for (u2_t i =0; i< line_number_table_length; i++){ - lineNumberTable[i] = new LineNumberTableEntry(_byteBuffer, _constantPool); - } -} - -LocalVariableTableAttribute::LocalVariableTableEntry::LocalVariableTableEntry(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - start_pc = _byteBuffer->u2(); - length = _byteBuffer->u2(); - name_index = _byteBuffer->u2(); - descriptor_index = _byteBuffer->u2(); - index = _byteBuffer->u2(); -} - -LocalVariableTableAttribute::LocalVariableTableAttribute(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - local_variable_table_length = _byteBuffer->u2(); - localVariableTable = new LocalVariableTableEntry *[local_variable_table_length]; -#ifdef SHOW - fprintf(stdout, "%d local variables", local_variable_table_length); -#endif - for (u2_t i =0; i< local_variable_table_length; i++){ - localVariableTable[i] = new LocalVariableTableEntry(_byteBuffer, _constantPool); - } -} - -CodeAttribute::ExceptionTableEntry::ExceptionTableEntry(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - start_pc = _byteBuffer->u2(); - end_pc = _byteBuffer->u2(); - handler_pc = _byteBuffer->u2(); - catch_type = _byteBuffer->u2(); -} - -CodeAttribute::CodeAttribute(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - max_stack = _byteBuffer->u2(); - max_locals = _byteBuffer->u2(); - code_length = _byteBuffer->u4(); - code = _byteBuffer->getBytes(code_length); -#ifdef SHOW - fprintf(stdout, "MaxStack %d, MaxLocals %d, CodeLength %d", max_stack, max_locals, code_length); -#endif - exception_table_length = _byteBuffer->u2(); - exceptionTable = new ExceptionTableEntry *[exception_table_length]; - for (u2_t i =0; i< exception_table_length; i++){ - exceptionTable[i] = new ExceptionTableEntry(_byteBuffer, _constantPool); - } - attributes_count = _byteBuffer->u2(); - attributes = new AttributeInfo *[attributes_count]; - for (u2_t i=0; i< attributes_count; i++){ - attributes[i] = new AttributeInfo(_byteBuffer, _constantPool); - } -} - -AttributeInfo::AttributeInfo(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - attribute_name_index = _byteBuffer->u2(); - UTF8ConstantPoolEntry *attributeName = (UTF8ConstantPoolEntry*)_constantPool[getAttributeNameIndex()]; - char *attributeNameChars = (char *)attributeName->getUTF8Bytes(); -#ifdef SHOW - fprintf(stdout, " [ATTR=\"%s\"{", attributeNameChars); -#endif - attribute_length = _byteBuffer->u4(); - info = _byteBuffer->getBytes(attribute_length); - if (!strcmp(attributeNameChars, "Code")){ - ByteBuffer *codeByteBuffer = new ByteBuffer(info, attribute_length); - codeAttribute = new CodeAttribute(codeByteBuffer, _constantPool); - attribute_type = Code; - } else if (!strcmp(attributeNameChars, "LineNumberTable")){ - ByteBuffer *lineNumberTableByteBuffer = new ByteBuffer(info, attribute_length); - lineNumberTableAttribute = new LineNumberTableAttribute(lineNumberTableByteBuffer, _constantPool); - attribute_type = LineNumberTable; - } else if (!strcmp(attributeNameChars, "LocalVariableTable")){ - ByteBuffer *localVariableTableByteBuffer = new ByteBuffer(info, attribute_length); - localVariableTableAttribute = new LocalVariableTableAttribute(localVariableTableByteBuffer, _constantPool); - attribute_type = LocalVariableTable; - } -#ifdef SHOW - fprintf(stdout, " }] ", attributeName->getUTF8Bytes()); -#endif -} -u2_t AttributeInfo::getAttributeNameIndex(){ - return(attribute_name_index); -} -AttributeType AttributeInfo::getAttributeType(){ - return(attribute_type); -} - -FieldInfo::FieldInfo(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - access_flags = _byteBuffer->u2(); - name_index = _byteBuffer->u2(); - descriptor_index = _byteBuffer->u2(); - attributes_count = _byteBuffer->u2(); - attributes = new AttributeInfo *[attributes_count]; - for (u2_t i=0; i< attributes_count; i++){ - attributes[i] = new AttributeInfo(_byteBuffer, _constantPool); - } -#ifdef SHOW - UTF8ConstantPoolEntry *fieldName = (UTF8ConstantPoolEntry*)_constantPool[getNameIndex()]; - fprintf(stdout, " field \"%s\"", fieldName->getUTF8Bytes()); - UTF8ConstantPoolEntry *fieldDescriptor = (UTF8ConstantPoolEntry*)_constantPool[getDescriptorIndex()]; - fprintf(stdout, " \"%s\"\n", fieldDescriptor->getUTF8Bytes()); -#endif -} -u2_t FieldInfo::getNameIndex(){ - return(name_index); -} -u2_t FieldInfo::getDescriptorIndex(){ - return(descriptor_index); -} - -MethodInfo::MethodInfo(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool){ - access_flags = _byteBuffer->u2(); - name_index = _byteBuffer->u2(); - descriptor_index = _byteBuffer->u2(); - attributes_count = _byteBuffer->u2(); - attributes = new AttributeInfo *[attributes_count]; - for (u2_t i=0; i< attributes_count; i++){ - attributes[i] = new AttributeInfo(_byteBuffer, _constantPool); - } -#ifdef SHOW - UTF8ConstantPoolEntry *methodName = (UTF8ConstantPoolEntry*)_constantPool[getNameIndex()]; - fprintf(stdout, " method \"%s\"", methodName->getUTF8Bytes()); - UTF8ConstantPoolEntry *methodDescriptor = (UTF8ConstantPoolEntry*)_constantPool[getDescriptorIndex()]; - fprintf(stdout, " \"%s\"\n", methodDescriptor->getUTF8Bytes()); -#endif -} -u2_t MethodInfo::getNameIndex(){ - return(name_index); -} -u2_t MethodInfo::getDescriptorIndex(){ - return(descriptor_index); -} - -bool isKernel(char *_className, ByteBuffer *_byteBuffer){ - bool isAKernel = false; - unsigned int magic= _byteBuffer->u4(); - if (magic == 0xcafebabe){ -#ifdef SHOW - fprintf(stdout, "class name \"%s\"\n", _className); -#endif - //fprintf(stdout, "magic = %04x\n", magic); - u2_t minor= _byteBuffer->u2(); - u2_t major= _byteBuffer->u2(); - u2_t constantPoolSize = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "constant pool size = %d\n", constantPoolSize); -#endif - u4_t slot = 0; - ConstantPoolEntry **constantPool=new ConstantPoolEntry *[constantPoolSize+1]; - constantPool[slot] = new EmptyConstantPoolEntry(_byteBuffer, slot); - slot=1; - - while (slot < constantPoolSize){ - ConstantPoolType constantPoolType = (ConstantPoolType)_byteBuffer->u1(); - switch (constantPoolType){ - case UTF8: //1 - constantPool[slot] = new UTF8ConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d UTF8 \"%s\"\n", slot, ((UTF8ConstantPoolEntry*)constantPool[slot])->getUTF8Bytes()); -#endif - slot++; - break; - case INTEGER: //3 - constantPool[slot] = new IntegerConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d INTEGER\n", slot); -#endif - slot++; - break; - case FLOAT: //4 - constantPool[slot] = new FloatConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d FLOAT\n", slot); -#endif - slot++; - break; - case LONG: //5 - constantPool[slot] = new LongConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d LONG\n", slot); -#endif - slot+=2; - break; - case DOUBLE: //6 - constantPool[slot] = new DoubleConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d DOUBLE\n", slot); -#endif - slot+=2; - break; - case CLASS: //7 - constantPool[slot] = new ClassConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d CLASS\n", slot); -#endif - slot+=1; - break; - case STRING: //8 - constantPool[slot] = new StringConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d STRING\n", slot); -#endif - slot+=1; - break; - case FIELD: //9 - constantPool[slot] = new FieldConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d FIELD\n", slot); -#endif - slot+=1; - break; - case METHOD: //10 - constantPool[slot] = new MethodConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d METHOD\n", slot); -#endif - slot+=1; - break; - case INTERFACEMETHOD: //11 - constantPool[slot] = new InterfaceMethodConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d INTERFACEMETHOD\n", slot); -#endif - slot+=1; - break; - case NAMEANDTYPE: //12 - constantPool[slot] = new NameAndTypeConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d NAMEANDTYPE\n", slot); -#endif - slot+=1; - break; - case METHODHANDLE: //15 - constantPool[slot] = new MethodHandleConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d METHODHANDLE\n", slot); -#endif - slot+=1; - break; - case METHODTYPE: //16 - constantPool[slot] = new MethodTypeConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - fprintf(stdout, "slot %d METHODTYPE", slot); -#endif - slot+=1; - break; - case INVOKEDYNAMIC: //18 - constantPool[slot] = new InvokeDynamicConstantPoolEntry(_byteBuffer, slot); -#ifdef SHOW - SHOW fprintf(stdout, "slot %d INVOKEDYNAMIC\n", slot); -#endif - slot+=1; - break; - default: - fprintf(stdout, "ERROR found UNKNOWN! %02x/%0d in slot %d\n", constantPoolType, constantPoolType, slot ); - exit (1); - } - } - - // we have the constant pool - - u2_t accessFlags = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "access flags %04x\n", accessFlags); -#endif - u2_t thisClassConstantPoolIndex = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "this class constant pool index = %04x\n", thisClassConstantPoolIndex); - ClassConstantPoolEntry *thisClassConstantPoolEntry = (ClassConstantPoolEntry*)constantPool[thisClassConstantPoolIndex]; - fprintf(stdout, "this class name constant pool index = %04x\n", thisClassConstantPoolEntry->getNameIndex()); - UTF8ConstantPoolEntry *thisClassUTF8ConstantPoolEntry = (UTF8ConstantPoolEntry*)constantPool[thisClassConstantPoolEntry->getNameIndex()]; - fprintf(stdout, "UTF8 at this class name index is \"%s\"\n", thisClassUTF8ConstantPoolEntry->getUTF8Bytes()); -#endif - u2_t superClassConstantPoolIndex = _byteBuffer->u2(); - ClassConstantPoolEntry *superClassConstantPoolEntry = (ClassConstantPoolEntry*)constantPool[superClassConstantPoolIndex]; - UTF8ConstantPoolEntry *superClassUTF8ConstantPoolEntry = (UTF8ConstantPoolEntry*)constantPool[superClassConstantPoolEntry->getNameIndex()]; - - isAKernel= !strcmp((char *)(superClassUTF8ConstantPoolEntry->getUTF8Bytes()),"com/amd/aparapi/Kernel"); - -#ifdef SHOW - fprintf(stdout, "Class name at super index is \"%s\"\n", superClassUTF8ConstantPoolEntry->getUTF8Bytes()); -#endif - u2_t interface_count = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "This class implements %d interfaces\n", interface_count); -#endif - u2_t *interfaces = new u2_t[interface_count]; - for (u2_t i=0; i< interface_count; i++){ - interfaces[i] = _byteBuffer->u2(); - } - u2_t field_count = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "This class has %d fields\n", field_count); -#endif - FieldInfo **fields = new FieldInfo*[field_count]; - for (u2_t i=0; i< field_count; i++){ - fields[i] = new FieldInfo(_byteBuffer, constantPool); - } - u2_t method_count = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "This class has %d methods\n", method_count); -#endif - MethodInfo **methods = new MethodInfo*[method_count]; - for (u2_t i=0; i< method_count; i++){ - methods[i] = new MethodInfo(_byteBuffer, constantPool); - } - u2_t attributes_count = _byteBuffer->u2(); -#ifdef SHOW - fprintf(stdout, "This class has %d attributes\n", attributes_count); -#endif - AttributeInfo **attributes = new AttributeInfo *[attributes_count]; - for (u2_t i=0; i< attributes_count; i++){ - attributes[i] = new AttributeInfo(_byteBuffer, constantPool); - } -#ifdef SHOW - fprintf(stdout, "\n"); -#endif - } - return(isAKernel); -} - diff --git a/com.amd.aparapi.jni/src/cpp/classtools.h b/com.amd.aparapi.jni/src/cpp/classtools.h deleted file mode 100644 index f0d4518c..00000000 --- a/com.amd.aparapi.jni/src/cpp/classtools.h +++ /dev/null @@ -1,338 +0,0 @@ -#ifndef CLASSTOOLS_H -#define CLASSTOOLS_H - -#include -#include - -enum ConstantPoolType { - EMPTY, //0 - UTF8, //1 - UNICODE, //2 - INTEGER, //3 - FLOAT, //4 - LONG, //5 - DOUBLE, //6 - CLASS, //7 - STRING, //8 - FIELD, //9 - METHOD, //10 - INTERFACEMETHOD, //11 - NAMEANDTYPE, //12 - UNUSED13, - UNUSED14, - METHODHANDLE, //15 - METHODTYPE, //16 - UNUSED17, - INVOKEDYNAMIC //18 -}; - -typedef unsigned char byte_t; -typedef unsigned char u1_t; -typedef unsigned short u2_t; -typedef signed int s4_t; -typedef unsigned int u4_t; -typedef unsigned long u8_t; -typedef signed long s8_t; -typedef float f4_t; -typedef double f8_t; - -union u4s4f4_u { - u4_t u4; - s4_t s4; - f4_t f4; -}; -union u8s8f8_u { - u8_t u8; - s8_t s8; - f8_t f8; -}; - -class ByteBuffer{ - private: - size_t len; - byte_t *bytes; - byte_t *ptr; - u1_t u1(byte_t *ptr); - u2_t u2(byte_t *ptr); - u4_t u4(byte_t *ptr); - s4_t s4(byte_t *ptr); - f4_t f4(byte_t *ptr); - u8_t u8(byte_t *ptr); - s8_t s8(byte_t *ptr); - f8_t f8(byte_t *ptr); - public: - ByteBuffer(byte_t *_bytes, size_t _len); - ~ByteBuffer(); - byte_t *getBytes(); - size_t getLen(); - u1_t u1(); - u2_t u2(); - u4_t u4(); - f4_t f4(); - s4_t s4(); - u8_t u8(); - f8_t f8(); - s8_t s8(); - byte_t *getBytes(int _len); - bool isKernel(); -}; - -class ConstantPoolEntry{ - private: - ConstantPoolType constantPoolType; - u4_t slot; - public: - ConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot, ConstantPoolType _constantPoolType); - ConstantPoolType getConstantPoolType() ; - u4_t getSlot(); -}; - -class EmptyConstantPoolEntry : public ConstantPoolEntry{ - public: - EmptyConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); -}; - -class UTF8ConstantPoolEntry: public ConstantPoolEntry{ - private: - size_t len; - byte_t *utf8Bytes; - public: - UTF8ConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot) ; - size_t getLen(); - byte_t *getUTF8Bytes(); - void write(FILE *file); -}; - -class IntegerConstantPoolEntry : public ConstantPoolEntry{ - private: - s4_t value; - public: - IntegerConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - s4_t getValue(); -}; - -class FloatConstantPoolEntry : public ConstantPoolEntry{ - private: - f4_t value; - public: - FloatConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - f4_t getValue(); -}; - -class DoubleConstantPoolEntry : public ConstantPoolEntry{ - private: - f8_t value; - public: - DoubleConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - f8_t getValue(); -}; - -class LongConstantPoolEntry : public ConstantPoolEntry{ - private: - s8_t value; - public: - LongConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - s8_t getValue(); -}; - -class ClassConstantPoolEntry : public ConstantPoolEntry{ - private: - u2_t nameIndex; - public: - ClassConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - u2_t getNameIndex(); -}; - - -class ReferenceConstantPoolEntry : public ConstantPoolEntry{ - protected: - u2_t referenceClassIndex; - u2_t nameAndTypeIndex; - public: - ReferenceConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot, ConstantPoolType _constantPoolType); - u2_t getReferenceClassIndex(); - u2_t getNameAndTypeIndex(); -}; - -class FieldConstantPoolEntry : public ReferenceConstantPoolEntry{ - public: - FieldConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); -}; -class MethodReferenceConstantPoolEntry : public ReferenceConstantPoolEntry{ - public: - MethodReferenceConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot, ConstantPoolType _constantPoolType); -}; - -class MethodConstantPoolEntry : public MethodReferenceConstantPoolEntry{ - public: - MethodConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); -}; - -class InterfaceMethodConstantPoolEntry : public MethodReferenceConstantPoolEntry{ - public: - InterfaceMethodConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); -}; - -class NameAndTypeConstantPoolEntry : public ConstantPoolEntry{ - protected: - u2_t descriptorIndex; - u2_t nameIndex; - public: - NameAndTypeConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - u2_t getDescriptorIndex(); - u2_t getNameIndex(); -}; - - -class MethodTypeConstantPoolEntry : public ConstantPoolEntry{ - protected: - u2_t descriptorIndex; - - public: - MethodTypeConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - u2_t getDescriptorIndex(); -}; - -class MethodHandleConstantPoolEntry : public ConstantPoolEntry{ - protected: - u1_t referenceKind; - u2_t referenceIndex; - public: - MethodHandleConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - u1_t getReferenceKind(); - u2_t getReferenceIndex(); -}; - -class StringConstantPoolEntry : public ConstantPoolEntry{ - protected: - u2_t utf8Index; - - public: - StringConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - u2_t getUtf8Index(); -}; - -class InvokeDynamicConstantPoolEntry : public ConstantPoolEntry{ - protected: - u2_t bootstrapMethodAttrIndex; - u2_t nameAndTypeIndex; - - public: - InvokeDynamicConstantPoolEntry(ByteBuffer *_byteBuffer, u4_t _slot); - u2_t getBootStrapMethodAttrIndex(); - u2_t getNameAndTypeIndex(); -}; - -class AttributeInfo; // forward - -class LineNumberTableAttribute{ - class LineNumberTableEntry{ - private: - u2_t start_pc; - u2_t line_number; - public: - LineNumberTableEntry(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); - }; - private: - u2_t line_number_table_length; - LineNumberTableEntry **lineNumberTable; - public: - LineNumberTableAttribute(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); -}; - -class LocalVariableTableAttribute{ - class LocalVariableTableEntry{ - private: - u2_t start_pc; - u2_t length; - u2_t name_index; - u2_t descriptor_index; - u2_t index; - public: - LocalVariableTableEntry(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); - }; - private: - u2_t local_variable_table_length; - LocalVariableTableEntry **localVariableTable; - public: - LocalVariableTableAttribute(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); -}; - -class CodeAttribute{ - class ExceptionTableEntry{ - private: - u2_t start_pc; - u2_t end_pc; - u2_t handler_pc; - u2_t catch_type; - - public: - ExceptionTableEntry(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); - }; - private: - u2_t max_stack; - u2_t max_locals; - u4_t code_length; - byte_t *code; - u2_t exception_table_length; - ExceptionTableEntry **exceptionTable; - u2_t attributes_count; - AttributeInfo **attributes; - public: - CodeAttribute(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); -}; - -enum AttributeType{ - Code, - LineNumberTable, - LocalVariableTable -}; - -class AttributeInfo{ - private: - u2_t attribute_name_index; - u4_t attribute_length; - byte_t *info; - AttributeType attribute_type; - union{ - CodeAttribute *codeAttribute; - LineNumberTableAttribute *lineNumberTableAttribute; - LocalVariableTableAttribute *localVariableTableAttribute; - }; - public: - AttributeInfo(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); - u2_t getAttributeNameIndex(); - AttributeType getAttributeType(); -}; - -class FieldInfo{ - private: - u2_t access_flags; - u2_t name_index; - u2_t descriptor_index; - u2_t attributes_count; - AttributeInfo **attributes; - public: - FieldInfo(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); - u2_t getNameIndex(); - u2_t getDescriptorIndex(); -}; - -class MethodInfo{ - private: - u2_t access_flags; - u2_t name_index; - u2_t descriptor_index; - u2_t attributes_count; - AttributeInfo **attributes; - public: - MethodInfo(ByteBuffer *_byteBuffer, ConstantPoolEntry **_constantPool); - u2_t getNameIndex(); - u2_t getDescriptorIndex(); -}; - -#ifndef CLASSTOOLS_CPP -extern bool isKernel(char *_className, ByteBuffer *_byteBuffer); -#endif -#endif - diff --git a/com.amd.aparapi.jni/src/cpp/classtoolstest.cpp b/com.amd.aparapi.jni/src/cpp/classtoolstest.cpp deleted file mode 100644 index de95541e..00000000 --- a/com.amd.aparapi.jni/src/cpp/classtoolstest.cpp +++ /dev/null @@ -1,41 +0,0 @@ - -#include -#include - -#ifndef __APPLE__ -#include -#endif - -#include -#ifndef _WIN32 -#include -#endif - -#include "classtools.h" - -int main(int argc, char **argv){ - FILE *classFile = fopen("ClassModel.class", "rb"); - if (classFile == NULL){fputs ("OPen error",stderr); exit (1);} - fseek(classFile, 0 , SEEK_END); - long size = ftell(classFile); - rewind (classFile); - - // allocate memory to contain the whole file: - char *buffer = (char*) malloc (sizeof(char)*size); - if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);} - - // copy the file into the buffer: - size_t result = fread (buffer,1,size, classFile); - if (result != size) {fputs ("Reading error",stderr); exit (3);} - - fprintf(stdout, "read %d bytes\n", size); - - ByteBuffer byteBuffer((byte_t*)buffer, size); - isKernel("ClassModel", &byteBuffer); - - /* the whole file is now loaded in the memory buffer. */ - - // terminate - fclose (classFile); - -} diff --git a/com.amd.aparapi.jni/src/cpp/cltest.cpp b/com.amd.aparapi.jni/src/cpp/cltest.cpp deleted file mode 100644 index 9604dbeb..00000000 --- a/com.amd.aparapi.jni/src/cpp/cltest.cpp +++ /dev/null @@ -1,224 +0,0 @@ - -#include -#include -#include -#include - -#ifndef __APPLE__ -#include -#endif - -#include -#ifndef _WIN32 -#include -#endif - -#ifndef __APPLE__ -#include -#else -#include -#endif - - -#if defined (_WIN32) -#include "windows.h" -#define alignedMalloc(size, alignment)\ - _aligned_malloc(size, alignment) -#else -#define alignedMalloc(size, alignment)\ - memalign(alignment, size) -#endif - -const char *errString(cl_int status){ - static struct { cl_int code; const char *msg; } error_table[] = { - { CL_SUCCESS, "success" }, - { CL_DEVICE_NOT_FOUND, "device not found", }, - { CL_DEVICE_NOT_AVAILABLE, "device not available", }, - { CL_COMPILER_NOT_AVAILABLE, "compiler not available", }, - { CL_MEM_OBJECT_ALLOCATION_FAILURE, "mem object allocation failure", }, - { CL_OUT_OF_RESOURCES, "out of resources", }, - { CL_OUT_OF_HOST_MEMORY, "out of host memory", }, - { CL_PROFILING_INFO_NOT_AVAILABLE, "profiling not available", }, - { CL_MEM_COPY_OVERLAP, "memcopy overlaps", }, - { CL_IMAGE_FORMAT_MISMATCH, "image format mismatch", }, - { CL_IMAGE_FORMAT_NOT_SUPPORTED, "image format not supported", }, - { CL_BUILD_PROGRAM_FAILURE, "build program failed", }, - { CL_MAP_FAILURE, "map failed", }, - { CL_INVALID_VALUE, "invalid value", }, - { CL_INVALID_DEVICE_TYPE, "invalid device type", }, - { CL_INVALID_PLATFORM, "invlaid platform",}, - { CL_INVALID_DEVICE, "invalid device",}, - { CL_INVALID_CONTEXT, "invalid context",}, - { CL_INVALID_QUEUE_PROPERTIES, "invalid queue properties",}, - { CL_INVALID_COMMAND_QUEUE, "invalid command queue",}, - { CL_INVALID_HOST_PTR, "invalid host ptr",}, - { CL_INVALID_MEM_OBJECT, "invalid mem object",}, - { CL_INVALID_IMAGE_FORMAT_DESCRIPTOR, "invalid image format descriptor ",}, - { CL_INVALID_IMAGE_SIZE, "invalid image size",}, - { CL_INVALID_SAMPLER, "invalid sampler",}, - { CL_INVALID_BINARY, "invalid binary",}, - { CL_INVALID_BUILD_OPTIONS, "invalid build options",}, - { CL_INVALID_PROGRAM, "invalid program ",}, - { CL_INVALID_PROGRAM_EXECUTABLE, "invalid program executable",}, - { CL_INVALID_KERNEL_NAME, "invalid kernel name",}, - { CL_INVALID_KERNEL_DEFINITION, "invalid definition",}, - { CL_INVALID_KERNEL, "invalid kernel",}, - { CL_INVALID_ARG_INDEX, "invalid arg index",}, - { CL_INVALID_ARG_VALUE, "invalid arg value",}, - { CL_INVALID_ARG_SIZE, "invalid arg size",}, - { CL_INVALID_KERNEL_ARGS, "invalid kernel args",}, - { CL_INVALID_WORK_DIMENSION , "invalid work dimension",}, - { CL_INVALID_WORK_GROUP_SIZE, "invalid work group size",}, - { CL_INVALID_WORK_ITEM_SIZE, "invalid work item size",}, - { CL_INVALID_GLOBAL_OFFSET, "invalid global offset",}, - { CL_INVALID_EVENT_WAIT_LIST, "invalid event wait list",}, - { CL_INVALID_EVENT, "invalid event",}, - { CL_INVALID_OPERATION, "invalid operation",}, - { CL_INVALID_GL_OBJECT, "invalid gl object",}, - { CL_INVALID_BUFFER_SIZE, "invalid buffer size",}, - { CL_INVALID_MIP_LEVEL, "invalid mip level",}, - { CL_INVALID_GLOBAL_WORK_SIZE, "invalid global work size",}, - { 0, NULL }, - }; - static char unknown[25]; - int ii; - - for (ii = 0; error_table[ii].msg != NULL; ii++) { - if (error_table[ii].code == status) { - return error_table[ii].msg; - } - } -#ifdef _WIN32 - _snprintf(unknown, sizeof unknown, "unknown error %d", status); -#else - snprintf(unknown, sizeof(unknown), "unknown error %d", status); -#endif - return unknown; -} - -int main(int argc, char **argv){ - cl_int status = CL_SUCCESS; - cl_uint platformc; - - status = clGetPlatformIDs(0, NULL, &platformc); - if (status != CL_SUCCESS){ - fprintf(stderr, "clGetPlatformIDs(0,NULL,&platformc) failed!\n%s\n", errString(status)); - exit(1); - } - fprintf(stderr, "clGetPlatformIDs(0,NULL,&platformc) OK!\n", errString(status)); - fprintf(stderr, "There %s %d platform%s\n", ((platformc==1)?"is":"are"), platformc, ((platformc==1)?"":"s")); - cl_platform_id* platformIds = new cl_platform_id[platformc]; - status = clGetPlatformIDs(platformc, platformIds, NULL); - if (status != CL_SUCCESS){ - fprintf(stderr, "clGetPlatformIDs(platformc,platformIds,NULL) failed!\n%s\n", errString(status)); - exit(1); - } - for (unsigned platformIdx = 0; platformIdx < platformc; ++platformIdx) { - fprintf(stderr, "platform %d{\n", platformIdx); - char platformVersionName[512]; - status = clGetPlatformInfo(platformIds[platformIdx], CL_PLATFORM_VERSION, sizeof(platformVersionName), platformVersionName, NULL); - - char platformVendorName[512]; - char platformName[512]; - status = clGetPlatformInfo(platformIds[platformIdx], CL_PLATFORM_VENDOR, sizeof(platformVendorName), platformVendorName, NULL); - status = clGetPlatformInfo(platformIds[platformIdx], CL_PLATFORM_NAME, sizeof(platformName), platformName, NULL); - fprintf(stderr, " CL_PLATFORM_VENDOR..\"%s\"\n", platformVendorName); - fprintf(stderr, " CL_PLATFORM_VERSION.\"%s\"\n", platformVersionName); - fprintf(stderr, " CL_PLATFORM_NAME....\"%s\"\n", platformName); - cl_uint deviceIdc; - cl_device_type requestedDeviceType =CL_DEVICE_TYPE_CPU |CL_DEVICE_TYPE_GPU ; - status = clGetDeviceIDs(platformIds[platformIdx], requestedDeviceType, 0, NULL, &deviceIdc); - fprintf(stderr, " Platform %d has %d device%s{\n", platformIdx, deviceIdc, ((deviceIdc==1)?"":"s")); - if (status == CL_SUCCESS && deviceIdc >0 ){ - cl_device_id* deviceIds = new cl_device_id[deviceIdc]; - status = clGetDeviceIDs(platformIds[platformIdx], requestedDeviceType, deviceIdc, deviceIds, NULL); - if (status == CL_SUCCESS){ - for (unsigned deviceIdx=0; deviceIdx(jenv, argInstance, "bits")); - } - static void setBits(JNIEnv *jenv, jobject argInstance, jlong bits){ - JNIHelper::setInstanceField(jenv, argInstance, "bits", bits); - } - static jobject getMemInstance(JNIEnv *jenv, jobject argInstance){ - return(JNIHelper::getInstanceField(jenv, argInstance, "memVal", OpenCLMemClassArg)); - } - static void setMemInstance(JNIEnv *jenv, jobject argInstance, jobject memInstance){ - JNIHelper::setInstanceField(jenv, argInstance, "memVal", OpenCLMemClassArg, memInstance); - } - static void describe(JNIEnv *jenv, jobject argDef, jint argIndex){ - jlong argBits = OpenCLArgDescriptor::getBits(jenv, argDef); - fprintf(stderr, " %d ", argIndex); - OpenCLArgDescriptor::describeBits(jenv, argBits); - fprintf(stderr, "\n"); - } - - static void describeBits(JNIEnv *jenv, jlong bits); -}; - -#endif //OPEN_CL_ARG_DESCRIPTOR_H diff --git a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLJNI.cpp b/com.amd.aparapi.jni/src/cpp/invoke/OpenCLJNI.cpp deleted file mode 100644 index f35bcd12..00000000 --- a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLJNI.cpp +++ /dev/null @@ -1,555 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security�s website at http://www.bis.doc.gov/. - */ - -/** @opencljni.cpp */ - -#define OPENCLJNI_SOURCE -#include "OpenCLJNI.h" -#include "OpenCLArgDescriptor.h" -#include "OpenCLKernel.h" -#include "OpenCLMem.h" -#include "OpenCLProgram.h" -#include "JavaArgs.h" -#include - -#include "com_amd_aparapi_internal_jni_OpenCLJNI.h" - - -jobject OpenCLDevice::getPlatformInstance(JNIEnv *jenv, jobject deviceInstance){ - return(JNIHelper::getInstanceField(jenv, deviceInstance, "platform", OpenCLPlatformClassArg )); -} -cl_device_id OpenCLDevice::getDeviceId(JNIEnv *jenv, jobject deviceInstance){ - return((cl_device_id)JNIHelper::getInstanceField(jenv, deviceInstance, "deviceId")); -} - -cl_platform_id OpenCLPlatform::getPlatformId(JNIEnv *jenv, jobject platformInstance){ - return((cl_platform_id)JNIHelper::getInstanceField(jenv, platformInstance, "platformId")); -} - -jint OpenCLRange::getDims(JNIEnv *jenv, jobject rangeInstance){ - return(JNIHelper::getInstanceField(jenv, rangeInstance, "dims")); -} - -const char* localSize(int i) { - if(i == 0) return "localSize_0"; - if(i == 1) return "localSize_1"; - if(i == 2) return "localSize_2"; - return "localSize_"; -} - -const char* globalSize(int i) { - if(i == 0) return "globalSize_0"; - if(i == 1) return "globalSize_1"; - if(i == 2) return "globalSize_2"; - return "globalSize_"; -} - -void OpenCLRange::fill(JNIEnv *jenv, jobject rangeInstance, jint dims, size_t* offsets, size_t* globalDims, size_t* localDims) { - for (int i = 0; i < dims && i < 3; i++) { - offsets[i] = 0; - localDims[i] = JNIHelper::getInstanceField(jenv, rangeInstance, localSize(i)); - globalDims[i] = JNIHelper::getInstanceField(jenv, rangeInstance, globalSize(i)); - } -} - -JNI_JAVA(jobject, OpenCLJNI, createProgram) - (JNIEnv *jenv, jobject jobj, jobject deviceInstance, jstring source) { - - jobject platformInstance = OpenCLDevice::getPlatformInstance(jenv, deviceInstance); - cl_platform_id platformId = OpenCLPlatform::getPlatformId(jenv, platformInstance); - cl_device_id deviceId = OpenCLDevice::getDeviceId(jenv, deviceInstance); - cl_int status = CL_SUCCESS; - cl_device_type deviceType; - clGetDeviceInfo(deviceId, CL_DEVICE_TYPE, sizeof(deviceType), &deviceType, NULL); - if(0)fprintf(stderr, "device[%ld] CL_DEVICE_TYPE = %lx\n", (unsigned long)deviceId, (unsigned long)deviceType); - - - cl_context_properties cps[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)platformId, 0 }; - cl_context_properties* cprops = (NULL == platformId) ? NULL : cps; - cl_context context = clCreateContextFromType( cprops, deviceType, NULL, NULL, &status); - - - jstring log=NULL; - cl_program program = CLHelper::compile(jenv, context, 1, &deviceId, source, &log, &status); - cl_command_queue queue = NULL; - if(status == CL_SUCCESS) { - cl_command_queue_properties queue_props = CL_QUEUE_PROFILING_ENABLE; - queue = clCreateCommandQueue(context, deviceId, queue_props, &status); - }else{ - fprintf(stderr, "queue creation seems to have failed\n"); - - } - jobject programInstance = OpenCLProgram::create(jenv, program, queue, context, deviceInstance, source, log); - - return(programInstance); - } - -JNI_JAVA(jobject, OpenCLJNI, createKernelJNI) - (JNIEnv *jenv, jobject jobj, jobject programInstance, jstring name, jobjectArray args) { - cl_context context = OpenCLProgram::getContext(jenv, programInstance); - cl_program program = OpenCLProgram::getProgram(jenv, programInstance); - cl_int status = CL_SUCCESS; - const char *nameChars = jenv->GetStringUTFChars(name, NULL); - if(0)fprintf(stderr, "tring to extract kernel '%s'\n", nameChars); - cl_kernel kernel = clCreateKernel(program, nameChars, &status); - jenv->ReleaseStringUTFChars(name, nameChars); - - if (kernel == NULL){ - fprintf(stderr, "kernel is null!\n"); - } - - jobject kernelInstance = NULL; - if (status == CL_SUCCESS){ - kernelInstance = OpenCLKernel::create(jenv, kernel, programInstance, name, args); - }else{ - fprintf(stderr, "kernel creation seems to have failed\n"); - } - return(kernelInstance); - - } - - -template -void putPrimative(JNIEnv* jenv, cl_kernel kernel, jobject arg, jint argIndex) { - cl_T value = JNIHelper::getInstanceField(jenv, arg, "value"); - cl_int status = clSetKernelArg(kernel, argIndex, sizeof(value), (void *)&(value)); - if (status != CL_SUCCESS) { - std::cerr << "error setting " << JNIHelper::getType((jT)0) << " arg " << argIndex - << " " << value << " " << CLHelper::errString(status) << "!\n"; - } -} - -void putArg(JNIEnv *jenv, cl_context context, cl_kernel kernel, cl_command_queue commandQueue, cl_event *events, jint *eventc, jint argIndex, jobject argDef, jobject arg){ - cl_int status = CL_SUCCESS; - jlong argBits = OpenCLArgDescriptor::getBits(jenv, argDef); - if (argisset(argBits, ARRAY) && argisset(argBits, GLOBAL)){ - jobject memInstance = OpenCLArgDescriptor::getMemInstance(jenv, argDef); - if (memInstance == NULL){ - // first call? - memInstance = OpenCLMem::create(jenv, context, argBits, (jarray)arg); - OpenCLArgDescriptor::setMemInstance(jenv, argDef, memInstance); - } else { - // check of argBits == memInstance.argBits - // we need to pin it - // jboolean isCopy; - void *ptr = OpenCLMem::pin(jenv, (jarray)arg, &argBits); - void *oldPtr = OpenCLMem::getAddress(jenv, memInstance); - //ptr moved - if (ptr != oldPtr){ - cl_mem mem = OpenCLMem::getMem(jenv, memInstance); - status = clReleaseMemObject(mem); - memInstance = OpenCLMem::create(jenv, context, argBits, (jarray)arg); - OpenCLArgDescriptor::setMemInstance(jenv, argDef, memInstance); - } - OpenCLArgDescriptor::setBits(jenv, argDef, argBits); - } - cl_mem mem = OpenCLMem::getMem(jenv, memInstance); - cl_int status = CL_SUCCESS; - if (argisset(argBits, READONLY) | argisset(argBits, READWRITE)) { - // kernel reads this so enqueue a write - void *ptr = OpenCLMem::getAddress(jenv, memInstance); - size_t sizeInBytes = OpenCLMem::getSizeInBytes(jenv, memInstance); - jlong memBits = OpenCLMem::getBits(jenv, memInstance); - memadd(memBits, ENQUEUED); - OpenCLMem::setBits(jenv, memInstance, memBits); - // fprintf(stderr, "enqueuing write of arg "); - // OpenCLArgDescriptor::describe(jenv, argDef, argIndex); - status = clEnqueueWriteBuffer(commandQueue, mem, CL_FALSE, 0, sizeInBytes, ptr, *eventc, (*eventc)==0?NULL:events, &events[*eventc]); - if (status != CL_SUCCESS) { - fprintf(stderr, "error enqueuing write %s!\n", CLHelper::errString(status)); - } - (*eventc)++; - } - status = clSetKernelArg(kernel, argIndex, sizeof(cl_mem), (void *)&(mem)); - if (status != CL_SUCCESS) { - fprintf(stderr, "error setting arg %d %s!\n", argIndex, CLHelper::errString(status)); - } - } else if (argisset(argBits, ARRAY) && argisset(argBits, LOCAL)){ - - jsize sizeInBytes = OpenCLMem::getArraySizeInBytes(jenv, (jarray)arg, argBits); - cl_int status = CL_SUCCESS; - status = clSetKernelArg(kernel, argIndex, (size_t)sizeInBytes, (void *)NULL); - if (status != CL_SUCCESS) { - fprintf(stderr, "error setting arg %d %s!\n", argIndex, CLHelper::errString(status)); - } - } else if (argisset(argBits, PRIMITIVE)){ - if (argisset(argBits, INT)) { - putPrimative(jenv, kernel, arg, argIndex); - } else if (argisset(argBits, FLOAT)) { - putPrimative(jenv, kernel, arg, argIndex); - } else if (argisset(argBits, LONG)) { - putPrimative(jenv, kernel, arg, argIndex); - } else if (argisset(argBits, DOUBLE)) { - putPrimative(jenv, kernel, arg, argIndex); - } - } -} - -void getArg(JNIEnv *jenv, cl_context context, cl_command_queue commandQueue, cl_event *events, jint *eventc, jint argIndex, jobject argDef, jobject arg){ - jlong argBits = OpenCLArgDescriptor::getBits(jenv, argDef); - if (argisset(argBits, ARRAY) && argisset(argBits, GLOBAL)){ - jobject memInstance = OpenCLArgDescriptor::getMemInstance(jenv, argDef); - if (memInstance == NULL){ - fprintf(stderr, "mem instance not set\n"); - } - void *ptr = OpenCLMem::getAddress(jenv, memInstance); - if (argisset(argBits, WRITEONLY)|argisset(argBits, READWRITE)){ - - cl_mem mem = OpenCLMem::getMem(jenv, memInstance); - - cl_event* anyEvents = (*eventc)==0 ? NULL : events; - size_t sizeInBytes = OpenCLMem::getSizeInBytes(jenv, memInstance); - cl_int status = clEnqueueReadBuffer(commandQueue, mem, CL_FALSE, 0, sizeInBytes, ptr ,*eventc, anyEvents, &events[*eventc]); - if (status != CL_SUCCESS) { - fprintf(stderr, "error enqueuing read %s!\n", CLHelper::errString(status)); - } - (*eventc)++; - } - - jobject arrayInstance = OpenCLMem::getInstance(jenv, memInstance); - jlong memBits = OpenCLMem::getBits(jenv, memInstance); - OpenCLMem::unpin(jenv, (jarray)arrayInstance, ptr, &memBits); - memreset(memBits, ENQUEUED); - memreset(memBits, COPY); - OpenCLMem::setBits(jenv, memInstance, memBits); - } -} - -JNI_JAVA(jobject, OpenCLJNI, getProfileInfo) - (JNIEnv *jenv, jobject jobj, jobject programInstance) { - jobject returnList = JNIHelper::createInstance(jenv, ArrayListClass, VoidReturn ); - ProfileInfo **profileInfoArr = OpenCLProgram::getProfileInfo(jenv, programInstance); - if (profileInfoArr != NULL){ - for (int i=0; profileInfoArr[i] != NULL; i++){ - jobject writeProfileInfo = profileInfoArr[i]->createProfileInfoInstance(jenv); - JNIHelper::callVoid(jenv, returnList, "add", ArgsBooleanReturn(ObjectClassArg), writeProfileInfo); - } - } - return(returnList); -} - -JNI_JAVA(void, OpenCLJNI, disposeProgram) - (JNIEnv *jenv, jobject jobj, jobject programInstance) { - //fprintf(stderr, "dispose program \n"); - cl_program program = OpenCLProgram::getProgram(jenv, programInstance); - clReleaseProgram(program); - cl_command_queue commandQueue = OpenCLProgram::getCommandQueue(jenv, programInstance); - clReleaseCommandQueue(commandQueue); - cl_context context = OpenCLProgram::getContext(jenv, programInstance); - clReleaseContext(context); - ProfileInfo **profileInfoArr = OpenCLProgram::getProfileInfo(jenv, programInstance); - if (profileInfoArr != NULL){ - for (int i=0; profileInfoArr[i] != NULL; i++){ - //fprintf(stdout, "removed prev profile %d\n", i); - delete profileInfoArr[i]; - } - delete[] profileInfoArr; - } -} - -JNI_JAVA(void, OpenCLJNI, disposeKernel) - (JNIEnv *jenv, jobject jobj, jobject kernelInstance) { - cl_kernel kernel = OpenCLKernel::getKernel(jenv, kernelInstance); - jobject programInstance = OpenCLKernel::getProgramInstance(jenv, kernelInstance); - jobjectArray argDefsArray = OpenCLKernel::getArgsArray(jenv, kernelInstance); - - - cl_context context = OpenCLProgram::getContext(jenv, programInstance); - cl_command_queue commandQueue = OpenCLProgram::getCommandQueue(jenv, programInstance); - jsize argc = jenv->GetArrayLength(argDefsArray); - //fprintf(stderr, "dispose! argc = %d\n", argc); - for (jsize argIndex = 0; argIndex < argc; argIndex++){ - jobject argDef = jenv->GetObjectArrayElement(argDefsArray, argIndex); - jlong argBits = OpenCLArgDescriptor::getBits(jenv, argDef); - if (argisset(argBits, ARRAY) && argisset(argBits, GLOBAL)){ - jobject memInstance = OpenCLArgDescriptor::getMemInstance(jenv, argDef); - if (memInstance == NULL){ - fprintf(stderr, "mem instance not set\n"); - }else{ - cl_mem mem = OpenCLMem::getMem(jenv, memInstance); - size_t sizeInBytes = OpenCLMem::getSizeInBytes(jenv, memInstance); - cl_int status = clReleaseMemObject(mem); - //fprintf(stderr, "mem instance %d released!\n", sizeInBytes); - } - } - } - clReleaseKernel(kernel); - } - -extern cl_int profile(ProfileInfo *profileInfo, cl_event *event, jint type, char* name, cl_ulong profileBaseTime ); - -/** - */ -JNI_JAVA(void, OpenCLJNI, invoke) - (JNIEnv *jenv, jobject jobj, jobject kernelInstance, jobjectArray argArray) { - cl_kernel kernel = OpenCLKernel::getKernel(jenv, kernelInstance); - jobject programInstance = OpenCLKernel::getProgramInstance(jenv, kernelInstance); - jobjectArray argDefsArray = OpenCLKernel::getArgsArray(jenv, kernelInstance); - - cl_context context = OpenCLProgram::getContext(jenv, programInstance); - cl_command_queue commandQueue = OpenCLProgram::getCommandQueue(jenv, programInstance); - - - // walk through the args creating buffers when needed - // we use the bitfields to determine which is which - // note that argArray[0] is the range then 1,2,3 etc matches argDefsArray[0,1,2] - jsize argc = jenv->GetArrayLength(argDefsArray); - if (0) fprintf(stderr, "argc = %d\n", argc); - jint reads = 0; - jint writes = 0; - for (jsize argIndex = 0; argIndex < argc; argIndex++){ - jobject argDef = jenv->GetObjectArrayElement(argDefsArray, argIndex); - jlong argBits = OpenCLArgDescriptor::getBits(jenv, argDef); - if (argisset(argBits, READONLY)){ - reads++; - } - if (argisset(argBits, READWRITE)){ - reads++; - writes++; - } - if (argisset(argBits, WRITEONLY)){ - writes++; - } - } - - if (0) fprintf(stderr, "reads=%d writes=%d\n", reads, writes); - cl_event * events = new cl_event[reads+writes+1]; - - jint eventc = 0; - - for (jsize argIndex = 0; argIndex < argc; argIndex++){ - jobject argDef = jenv->GetObjectArrayElement(argDefsArray, argIndex); - jobject arg = jenv->GetObjectArrayElement(argArray, argIndex+1); - putArg(jenv, context, kernel, commandQueue, events, &eventc, argIndex, argDef, arg); - } - - jobject rangeInstance = jenv->GetObjectArrayElement(argArray, 0); - jint dims = OpenCLRange::getDims(jenv, rangeInstance); - - size_t *offsets = new size_t[dims]; - size_t *globalDims = new size_t[dims]; - size_t *localDims = new size_t[dims]; - OpenCLRange::fill(jenv, rangeInstance, dims, offsets, globalDims, localDims); - - cl_int status = CL_SUCCESS; - - if(0) fprintf(stderr, "Exec %d\n", eventc); - status = clEnqueueNDRangeKernel( - commandQueue, - kernel, - dims, - offsets, - globalDims, - localDims, - eventc, // count Of events to wait for - eventc==0?NULL:events, // address of events to wait for - &events[eventc]); - if (status != CL_SUCCESS) { - fprintf(stderr, "error enqueuing execute %s !\n", CLHelper::errString(status)); - }else{ - if (0) fprintf(stderr, "success enqueuing execute eventc= %d !\n", eventc); - } - eventc++; - - for (jsize argIndex = 0; argIndex < argc; argIndex++){ - jobject argDef = jenv->GetObjectArrayElement(argDefsArray, argIndex); - jobject arg = jenv->GetObjectArrayElement(argArray, argIndex+1); - getArg(jenv, context, commandQueue, events, &eventc, argIndex, argDef, arg); - } - status = clWaitForEvents(eventc, events); - ProfileInfo **profileInfoArr = OpenCLProgram::getProfileInfo(jenv, programInstance); - if (profileInfoArr != NULL){ - for (int i=0; profileInfoArr[i] != NULL; i++){ - //fprintf(stdout, "removed prev profile %d\n", i); - delete profileInfoArr[i]; - } - //fprintf(stdout, "removed prev profile list\n"); - delete[] profileInfoArr; - }else{ - //fprintf(stdout, "prev profile list was NULL\n"); - } - profileInfoArr = NULL; - - profileInfoArr = new ProfileInfo*[eventc+1]; // add NULL to end! - //fprintf(stdout, "allocated a new list %d\n", eventc+1); - for (int i=0;i(writes+1))?2:((i>writes)?1:0); - profile(profileInfoArr[i], &events[i], type, "unknown", 0L); - //fprintf(stdout, "type = %d\n", type); - clReleaseEvent(events[i]); - } - profileInfoArr[eventc]=NULL; - OpenCLProgram::setProfileInfo(jenv, programInstance, profileInfoArr); - if (status != CL_SUCCESS) { - fprintf(stderr, "error waiting for events !\n"); - } - } - -JNI_JAVA(jobject, OpenCLJNI, getPlatforms) - (JNIEnv *jenv, jobject jobj) { - jobject platformListInstance = JNIHelper::createInstance(jenv, ArrayListClass, VoidReturn); - cl_int status = CL_SUCCESS; - cl_uint platformc; - - status = clGetPlatformIDs(0, NULL, &platformc); - //fprintf(stderr, "There are %d platforms\n", platformc); - cl_platform_id* platformIds = new cl_platform_id[platformc]; - status = clGetPlatformIDs(platformc, platformIds, NULL); - - if (status == CL_SUCCESS){ - for (unsigned platformIdx = 0; platformIdx < platformc; ++platformIdx) { - char platformVersionName[512]; - status = clGetPlatformInfo(platformIds[platformIdx], CL_PLATFORM_VERSION, sizeof(platformVersionName), platformVersionName, NULL); - - // fix this so OpenCL 1.3 or higher will not break! - if ( !strncmp(platformVersionName, "OpenCL 1.2", 10) - || !strncmp(platformVersionName, "OpenCL 1.1", 10) - || !strncmp(platformVersionName, "OpenCL 2.0", 10) -#ifdef __APPLE__ - || !strncmp(platformVersionName, "OpenCL 1.0", 10) -#endif - ) { - char platformVendorName[512]; - char platformName[512]; - status = clGetPlatformInfo(platformIds[platformIdx], CL_PLATFORM_VENDOR, sizeof(platformVendorName), platformVendorName, NULL); - status = clGetPlatformInfo(platformIds[platformIdx], CL_PLATFORM_NAME, sizeof(platformName), platformName, NULL); - //fprintf(stderr, "platform vendor %d %s\n", platformIdx, platformVendorName); - //fprintf(stderr, "platform version %d %s\n", platformIdx, platformVersionName); - jobject platformInstance = JNIHelper::createInstance(jenv, OpenCLPlatformClass , ArgsVoidReturn(LongArg StringClassArg StringClassArg StringClassArg ), - (jlong)platformIds[platformIdx], - jenv->NewStringUTF(platformVersionName), - jenv->NewStringUTF(platformVendorName), - jenv->NewStringUTF(platformName) - ); - JNIHelper::callVoid(jenv, platformListInstance, "add", ArgsBooleanReturn(ObjectClassArg), platformInstance); - - cl_uint deviceIdc; - cl_device_type requestedDeviceType =CL_DEVICE_TYPE_CPU |CL_DEVICE_TYPE_GPU ; - status = clGetDeviceIDs(platformIds[platformIdx], requestedDeviceType, 0, NULL, &deviceIdc); - if (status == CL_SUCCESS && deviceIdc > 0 ){ - cl_device_id* deviceIds = new cl_device_id[deviceIdc]; - status = clGetDeviceIDs(platformIds[platformIdx], requestedDeviceType, deviceIdc, deviceIds, NULL); - if (status == CL_SUCCESS){ - for (unsigned deviceIdx = 0; deviceIdx < deviceIdc; deviceIdx++){ - - cl_device_type deviceType; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_TYPE, sizeof(deviceType), &deviceType, NULL); - jobject deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "UNKNOWN", DeviceTypeClassArg); - //fprintf(stderr, "device[%d] CL_DEVICE_TYPE = ", deviceIdx); - if (deviceType & CL_DEVICE_TYPE_DEFAULT) { - deviceType &= ~CL_DEVICE_TYPE_DEFAULT; - //fprintf(stderr, "Default "); - } - if (deviceType & CL_DEVICE_TYPE_CPU) { - deviceType &= ~CL_DEVICE_TYPE_CPU; - //fprintf(stderr, "CPU "); - deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "CPU", DeviceTypeClassArg); - } - if (deviceType & CL_DEVICE_TYPE_GPU) { - deviceType &= ~CL_DEVICE_TYPE_GPU; - //fprintf(stderr, "GPU "); - deviceTypeEnumInstance = JNIHelper::getStaticFieldObject(jenv, DeviceTypeClass, "GPU", DeviceTypeClassArg); - } - if (deviceType & CL_DEVICE_TYPE_ACCELERATOR) { - deviceType &= ~CL_DEVICE_TYPE_ACCELERATOR; - fprintf(stderr, "Accelerator "); - } - //fprintf(stderr, "(0x%llx) ", deviceType); - //fprintf(stderr, "\n"); - - - //fprintf(stderr, "device type pointer %p", deviceTypeEnumInstance); - jobject deviceInstance = JNIHelper::createInstance(jenv, OpenCLDeviceClass, ArgsVoidReturn( OpenCLPlatformClassArg LongArg DeviceTypeClassArg ), - platformInstance, - (jlong)deviceIds[deviceIdx], - deviceTypeEnumInstance); - JNIHelper::callVoid(jenv, platformInstance, "addOpenCLDevice", ArgsVoidReturn( OpenCLDeviceClassArg ), deviceInstance); - - - cl_uint maxComputeUnits; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_COMPUTE_UNITS, sizeof(maxComputeUnits), &maxComputeUnits, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_MAX_COMPUTE_UNITS = %u\n", deviceIdx, maxComputeUnits); - JNIHelper::callVoid(jenv, deviceInstance, "setMaxComputeUnits", ArgsVoidReturn(IntArg), maxComputeUnits); - - - - cl_uint maxWorkItemDimensions; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS, sizeof(maxWorkItemDimensions), &maxWorkItemDimensions, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS = %u\n", deviceIdx, maxWorkItemDimensions); - JNIHelper::callVoid(jenv, deviceInstance, "setMaxWorkItemDimensions", ArgsVoidReturn(IntArg), maxWorkItemDimensions); - - size_t *maxWorkItemSizes = new size_t[maxWorkItemDimensions]; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_WORK_ITEM_SIZES, sizeof(size_t)*maxWorkItemDimensions, maxWorkItemSizes, NULL); - - for (unsigned dimIdx = 0; dimIdx < maxWorkItemDimensions; dimIdx++){ - //fprintf(stderr, "device[%d] dim[%d] = %d\n", deviceIdx, dimIdx, maxWorkItemSizes[dimIdx]); - JNIHelper::callVoid(jenv, deviceInstance, "setMaxWorkItemSize", ArgsVoidReturn(IntArg IntArg), dimIdx,maxWorkItemSizes[dimIdx]); - } - - size_t maxWorkGroupSize; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(maxWorkGroupSize), &maxWorkGroupSize, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_MAX_GROUP_SIZE = %u\n", deviceIdx, maxWorkGroupSize); - JNIHelper::callVoid(jenv, deviceInstance, "setMaxWorkGroupSize", ArgsVoidReturn(IntArg), maxWorkGroupSize); - - cl_ulong maxMemAllocSize; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_MAX_MEM_ALLOC_SIZE, sizeof(maxMemAllocSize), &maxMemAllocSize, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_MAX_MEM_ALLOC_SIZE = %lu\n", deviceIdx, maxMemAllocSize); - JNIHelper::callVoid(jenv, deviceInstance, "setMaxMemAllocSize", ArgsVoidReturn(LongArg), maxMemAllocSize); - - cl_ulong globalMemSize; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(globalMemSize), &globalMemSize, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_GLOBAL_MEM_SIZE = %lu\n", deviceIdx, globalMemSize); - JNIHelper::callVoid(jenv, deviceInstance, "setGlobalMemSize", ArgsVoidReturn(LongArg), globalMemSize); - - cl_ulong localMemSize; - status = clGetDeviceInfo(deviceIds[deviceIdx], CL_DEVICE_LOCAL_MEM_SIZE, sizeof(localMemSize), &localMemSize, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_LOCAL_MEM_SIZE = %lu\n", deviceIdx, localMemSize); - JNIHelper::callVoid(jenv, deviceInstance, "setLocalMemSize", ArgsVoidReturn(LongArg), localMemSize); - } - - } - } - } - } - } - - return (platformListInstance); - } - diff --git a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLJNI.h b/com.amd.aparapi.jni/src/cpp/invoke/OpenCLJNI.h deleted file mode 100644 index 64de9350..00000000 --- a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLJNI.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security�s website at http://www.bis.doc.gov/. - */ - -#ifndef OPENCLJNI_H -#define OPENCLJNI_H - -/** @opencljni.h */ - -#include "Common.h" -#include "JNIHelper.h" -#include "CLHelper.h" - - -class OpenCLDevice{ - public: - static jobject getPlatformInstance(JNIEnv *jenv, jobject deviceInstance); - static cl_device_id getDeviceId(JNIEnv *jenv, jobject deviceInstance); -}; - -class OpenCLPlatform{ - public: - static cl_platform_id getPlatformId(JNIEnv *jenv, jobject platformInstance); -}; - - -class OpenCLRange{ - public: - static jint getDims(JNIEnv *jenv, jobject rangeInstance); - static void fill(JNIEnv *jenv, jobject rangeInstance, jint dims, size_t* offsets, size_t* globalDims, size_t* localDims); -}; - -#endif // OPENCLJNI_H diff --git a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLKernel.h b/com.amd.aparapi.jni/src/cpp/invoke/OpenCLKernel.h deleted file mode 100644 index ed8eac78..00000000 --- a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLKernel.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef OPEN_CL_KERNEL_H -#define OPEN_CL_KERNEL_H - -#include "Common.h" -#include "JNIHelper.h" - -class OpenCLKernel{ - public: - - static jobject create(JNIEnv *jenv, cl_kernel kernel, jobject programInstance, jstring name, jobjectArray args){ - return(JNIHelper::createInstance(jenv, OpenCLKernelClass, - ArgsVoidReturn( LongArg OpenCLProgramClassArg StringClassArg ArrayArg(OpenCLArgDescriptorClass)), - (jlong)kernel, programInstance, name, args)); - } - - static cl_kernel getKernel(JNIEnv *jenv, jobject kernelInstance){ - cl_kernel k = (cl_kernel) JNIHelper::getInstanceField(jenv, kernelInstance, "kernelId"); - return((cl_kernel) JNIHelper::getInstanceField(jenv, kernelInstance, "kernelId")); - } - - static jobject getProgramInstance(JNIEnv *jenv, jobject kernelInstance){ - return(JNIHelper::getInstanceField(jenv, kernelInstance, "program", OpenCLProgramClassArg)); - } - - static jobjectArray getArgsArray(JNIEnv *jenv, jobject kernelInstance){ - return(reinterpret_cast - (JNIHelper::getInstanceField(jenv, kernelInstance, "args", - ArrayArg(OpenCLArgDescriptorClass) ))); - } -}; - -#endif //OPEN_CL_KERNEL_H diff --git a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLMem.cpp b/com.amd.aparapi.jni/src/cpp/invoke/OpenCLMem.cpp deleted file mode 100644 index 02eb0bcd..00000000 --- a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLMem.cpp +++ /dev/null @@ -1,87 +0,0 @@ -#include "OpenCLMem.h" -#include "JavaArgs.h" - -jobject OpenCLMem::create(JNIEnv *jenv, cl_context context, jlong argBits, jarray array){ - jsize sizeInBytes = getArraySizeInBytes(jenv, array, argBits); - - jlong memBits = 0; - - cl_int status = CL_SUCCESS; - void *ptr = OpenCLMem::pin(jenv, array, &memBits); - cl_mem mem = clCreateBuffer(context, bitsToOpenCLMask(argBits), sizeInBytes, ptr, &status); - if (status != CL_SUCCESS){ - fprintf(stderr, "buffer creation failed!\n"); - } - - jobject memInstance = OpenCLMem::create(jenv); - OpenCLMem::setAddress(jenv, memInstance, ptr); - OpenCLMem::setInstance(jenv, memInstance, array); - OpenCLMem::setSizeInBytes(jenv, memInstance, sizeInBytes); - OpenCLMem::setBits(jenv, memInstance, memBits); - OpenCLMem::setMem(jenv, memInstance, mem); - return(memInstance); -} - -void OpenCLMem::describeBits(JNIEnv *jenv, jlong bits){ - fprintf(stderr, " %lx ", (unsigned long)bits); - if (memisset(bits, COPY)){ - fprintf(stderr, "copy "); - } - if (memisset(bits, DIRTY)){ - fprintf(stderr, "dirty "); - } - if (memisset(bits, ENQUEUED)){ - fprintf(stderr, "enqueued "); - } -} - - -cl_uint OpenCLMem::bitsToOpenCLMask(jlong argBits ){ - cl_uint mask = CL_MEM_USE_HOST_PTR; - if (argisset(argBits, READONLY)) { - mask |= CL_MEM_READ_ONLY; - } else if (argisset(argBits, READWRITE)) { - mask |= CL_MEM_READ_WRITE; - } else if (argisset(argBits, WRITEONLY)) { - mask |= CL_MEM_WRITE_ONLY; - } - return(mask); -} - -jsize OpenCLMem::getPrimitiveSizeInBytes(JNIEnv *jenv, jlong argBits){ - jsize sizeInBytes = 0; - if (argisset(argBits, DOUBLE) || argisset(argBits, LONG)){ - sizeInBytes = 8; - } else if (argisset(argBits, FLOAT) || argisset(argBits, INT)){ - sizeInBytes = 4; - } else if (argisset(argBits, SHORT)){ - sizeInBytes = 2; - } else if (argisset(argBits, BYTE)){ - sizeInBytes = 1; - } - return(sizeInBytes); -} - - -void* OpenCLMem::pin(JNIEnv *jenv, jarray array, jlong *memBits){ - jboolean isCopy; - void *ptr = jenv->GetPrimitiveArrayCritical(array, &isCopy); - if (memBits != NULL){ - if (isCopy) { - memadd(*memBits, COPY); - } else { - memreset(*memBits, COPY); - } - } - return(ptr); -} - - -void OpenCLMem::unpin(JNIEnv *jenv, jarray array, void *ptr, jlong *memBits){ - if (argisset(*memBits, WRITEONLY)){ - jenv->ReleasePrimitiveArrayCritical(array, ptr, JNI_ABORT); - }else{ - jenv->ReleasePrimitiveArrayCritical(array, ptr, 0); - } -} - diff --git a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLMem.h b/com.amd.aparapi.jni/src/cpp/invoke/OpenCLMem.h deleted file mode 100644 index 9b4ead41..00000000 --- a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLMem.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef OPEN_CL_MEM_H -#define OPEN_CL_MEM_H - -#include "JNIHelper.h" -#include "Common.h" - -class OpenCLMem { - public: - static jobject create(JNIEnv *jenv) { - return(JNIHelper::createInstance(jenv, OpenCLMemClassArg, VoidReturn)); - } - - static jsize getArraySizeInBytes(JNIEnv *jenv, jarray array, jlong argBits){ - jsize arrayLen = jenv->GetArrayLength(array); - jsize sizeInBytes = getPrimitiveSizeInBytes(jenv, argBits) * arrayLen; - return(sizeInBytes); - } - - - static jlong getBits(JNIEnv *jenv, jobject memInstance){ - return(JNIHelper::getInstanceField(jenv, memInstance, "bits")); - } - static void setBits(JNIEnv *jenv, jobject memInstance, jlong bits){ - JNIHelper::setInstanceField(jenv, memInstance, "bits", bits); - } - static void* getAddress(JNIEnv *jenv, jobject memInstance){ - return((void*)JNIHelper::getInstanceField(jenv, memInstance, "address")); - } - static void setAddress(JNIEnv *jenv, jobject memInstance, void *address){ - JNIHelper::setInstanceField(jenv, memInstance, "address", (jlong)address); - } - static void setInstance(JNIEnv *jenv, jobject memInstance, jobject instance){ - JNIHelper::setInstanceField(jenv, memInstance, "instance", ObjectClassArg, instance); - } - static void setSizeInBytes(JNIEnv *jenv, jobject memInstance, jint sizeInBytes){ - JNIHelper::setInstanceField(jenv, memInstance, "sizeInBytes", sizeInBytes); - } - static size_t getSizeInBytes(JNIEnv *jenv, jobject memInstance){ - return((size_t)JNIHelper::getInstanceField(jenv, memInstance, "sizeInBytes")); - } - static jobject getInstance(JNIEnv *jenv, jobject memInstance){ - return(JNIHelper::getInstanceField(jenv, memInstance, "instance", ObjectClassArg)); - } - - static cl_mem getMem(JNIEnv *jenv, jobject memInstance){ - cl_mem mem = (cl_mem)JNIHelper::getInstanceField(jenv, memInstance, "memId"); - return(mem); - } - - static void setMem(JNIEnv *jenv, jobject memInstance, cl_mem mem){ - JNIHelper::setInstanceField(jenv, memInstance, "memId", (jlong)mem); - } - - static void describe(JNIEnv *jenv, jobject memInstance){ - jlong memBits = OpenCLMem::getBits(jenv, memInstance); - OpenCLMem::describeBits(jenv, memBits); - } - - static jobject create(JNIEnv *jenv, cl_context context, jlong argBits, jarray array); - static cl_uint bitsToOpenCLMask(jlong argBits ); - static jsize getPrimitiveSizeInBytes(JNIEnv *jenv, jlong argBits); - static void *pin(JNIEnv *jenv, jarray array, jlong *memBits); - static void describeBits(JNIEnv *jenv, jlong bits); - static void unpin(JNIEnv *jenv, jarray array, void *ptr, jlong *memBits); -}; - -#endif // OPEN_CL_MEM_H diff --git a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLProgram.h b/com.amd.aparapi.jni/src/cpp/invoke/OpenCLProgram.h deleted file mode 100644 index 35a5ccaf..00000000 --- a/com.amd.aparapi.jni/src/cpp/invoke/OpenCLProgram.h +++ /dev/null @@ -1,37 +0,0 @@ - -#ifndef OPEN_CL_PROGRAM_H -#define OPEN_CL_PROGRAM_H - -#include "JNIHelper.h" -#include "ProfileInfo.h" - -class OpenCLProgram{ - public: - static jobject create(JNIEnv *jenv, cl_program program, cl_command_queue queue, - cl_context context, jobject deviceInstance, jstring source, - jstring log) { - return(JNIHelper::createInstance(jenv, OpenCLProgramClass, - ArgsVoidReturn( LongArg LongArg LongArg - OpenCLDeviceClassArg StringClassArg) , - (jlong)program, (jlong)queue, (jlong)context, deviceInstance, source)); - } - - static cl_context getContext(JNIEnv *jenv, jobject programInstance){ - return((cl_context) JNIHelper::getInstanceField(jenv, programInstance, "contextId")); - } - static cl_program getProgram(JNIEnv *jenv, jobject programInstance){ - return((cl_program) JNIHelper::getInstanceField(jenv, programInstance, "programId")); - } - static ProfileInfo** getProfileInfo(JNIEnv *jenv, jobject programInstance){ - return((ProfileInfo**) JNIHelper::getInstanceField(jenv, programInstance, "profileInfo")); - } - static void setProfileInfo(JNIEnv *jenv, jobject programInstance, ProfileInfo **profileInfo){ - JNIHelper::setInstanceField(jenv, programInstance, "profileInfo", (jlong)profileInfo); - } - static cl_command_queue getCommandQueue(JNIEnv *jenv, jobject programInstance){ - return((cl_command_queue)JNIHelper::getInstanceField(jenv, programInstance, "queueId")); - } -}; - - -#endif //OPEN_CL_PROGRAM_H diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/Aparapi.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/Aparapi.cpp deleted file mode 100644 index 920645fd..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/Aparapi.cpp +++ /dev/null @@ -1,1474 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ - -#define APARAPI_SOURCE - -//this is a workaround for windows machines since defines min/max that break code. -#define NOMINMAX - -#include "Aparapi.h" -#include "Config.h" -#include "ProfileInfo.h" -#include "ArrayBuffer.h" -#include "AparapiBuffer.h" -#include "CLHelper.h" -#include "List.h" -#include - - -//compiler dependant code -/** - * calls either clEnqueueMarker or clEnqueueMarkerWithWaitList - * depending on the version of OpenCL installed. - * convenience function so we don't have to have #ifdefs all over the code - * - * Actually I backed this out (Gary) when issue #123 was reported. This involved - * a build on a 1.2 compatible platform which failed on a platform with a 1.1 runtime. - * Failed to link. - * The answer is to set -DCL_USE_DEPRECATED_OPENCL_1_1_APIS at compile time and *not* use - * the CL_VERSION_1_2 ifdef. - */ -int enqueueMarker(cl_command_queue commandQueue, cl_event* firstEvent) { -//#ifdef CL_VERSION_1_2 -// return clEnqueueMarkerWithWaitList(commandQueue, 0, NULL, firstEvent); -//#else - // this was deprecated in 1.1 make sure we use -DCL_USE_DEPRECATED_OPENCL_1_1_APIS - return clEnqueueMarker(commandQueue, firstEvent); -//#endif -} - -/** - * calls either GetCurrentProcessId or getpid depending on if we're on WIN32 or any other system - * conveiniece function so we don't have to have #ifdefs all over the code - */ -jint getProcess() { -#if defined (_WIN32) - return GetCurrentProcessId(); -#else - return (jint)getpid(); -#endif -} - - -JNI_JAVA(jint, KernelRunnerJNI, disposeJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle) { - if (config== NULL){ - config = new Config(jenv); - } - cl_int status = CL_SUCCESS; - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - if (jniContext != NULL){ - jniContext->dispose(jenv, config); - delete jniContext; - jniContext = NULL; - } - return(status); - } - -/* -void idump(const char *str, void *ptr, int size){ - int * iptr = (int *)ptr; - for (unsigned i=0; ifirstRun) { - fprintf(jniContext->profileFile, "# PROFILE Name, queued, submit, start, end (microseconds)\n"); - } - - // A read by a user kernel means the OpenCL layer wrote to the kernel and vice versa - for (int i=0; i< jniContext->argc; i++){ - KernelArg *arg=jniContext->args[i]; - if (arg->isBackedByArray() && arg->isReadByKernel()){ - - // Initialize the base time for this sample - if (currSampleBaseTime == -1) { - currSampleBaseTime = arg->arrayBuffer->write.queued; - } - fprintf(jniContext->profileFile, "%d write %s,", pos++, arg->name); - - fprintf(jniContext->profileFile, "%lu,%lu,%lu,%lu,", - (unsigned long)(arg->arrayBuffer->write.queued - currSampleBaseTime)/1000, - (unsigned long)(arg->arrayBuffer->write.submit - currSampleBaseTime)/1000, - (unsigned long)(arg->arrayBuffer->write.start - currSampleBaseTime)/1000, - (unsigned long)(arg->arrayBuffer->write.end - currSampleBaseTime)/1000); - } - } - - for (jint pass=0; passpasses; pass++){ - - // Initialize the base time for this sample if necessary - if (currSampleBaseTime == -1) { - currSampleBaseTime = jniContext->exec[pass].queued; - } - - // exec - fprintf(jniContext->profileFile, "%d exec[%d],", pos++, pass); - - fprintf(jniContext->profileFile, "%lu,%lu,%lu,%lu,", - (unsigned long)(jniContext->exec[pass].queued - currSampleBaseTime)/1000, - (unsigned long)(jniContext->exec[pass].submit - currSampleBaseTime)/1000, - (unsigned long)(jniContext->exec[pass].start - currSampleBaseTime)/1000, - (unsigned long)(jniContext->exec[pass].end - currSampleBaseTime)/1000); - } - - // - if ( jniContext->argc == 0 ) { - fprintf(jniContext->profileFile, "\n"); - } else { - for (int i=0; i< jniContext->argc; i++){ - KernelArg *arg=jniContext->args[i]; - if (arg->isBackedByArray() && arg->isMutableByKernel()){ - - // Initialize the base time for this sample - if (currSampleBaseTime == -1) { - currSampleBaseTime = arg->arrayBuffer->read.queued; - } - - fprintf(jniContext->profileFile, "%d read %s,", pos++, arg->name); - - fprintf(jniContext->profileFile, "%lu,%lu,%lu,%lu,", - (unsigned long)(arg->arrayBuffer->read.queued - currSampleBaseTime)/1000, - (unsigned long)(arg->arrayBuffer->read.submit - currSampleBaseTime)/1000, - (unsigned long)(arg->arrayBuffer->read.start - currSampleBaseTime)/1000, - (unsigned long)(arg->arrayBuffer->read.end - currSampleBaseTime)/1000); - } - } - } - fprintf(jniContext->profileFile, "\n"); - return(0); -} - -// Should failed profiling abort the run and return early? -cl_int profile(ProfileInfo *profileInfo, cl_event *event, jint type, char* name, cl_ulong profileBaseTime ) { - - cl_int status = CL_SUCCESS; - - try { - status = clGetEventProfilingInfo(*event, CL_PROFILING_COMMAND_QUEUED, sizeof(profileInfo->queued), &(profileInfo->queued), NULL); - if(status != CL_SUCCESS) throw CLException(status, "clGetEventProfiliningInfo() QUEUED"); - - status = clGetEventProfilingInfo(*event, CL_PROFILING_COMMAND_SUBMIT, sizeof(profileInfo->submit), &(profileInfo->submit), NULL); - if(status != CL_SUCCESS) throw CLException(status, "clGetEventProfiliningInfo() SUBMIT"); - - status = clGetEventProfilingInfo(*event, CL_PROFILING_COMMAND_START, sizeof(profileInfo->start), &(profileInfo->start), NULL); - if(status != CL_SUCCESS) throw CLException(status, "clGetEventProfiliningInfo() START"); - - status = clGetEventProfilingInfo(*event, CL_PROFILING_COMMAND_END, sizeof(profileInfo->end), &(profileInfo->end), NULL); - if(status != CL_SUCCESS) throw CLException(status, "clGetEventProfiliningInfo() END"); - - } catch(CLException& cle) { - cle.printError(); - return cle.status(); - } - - profileInfo->queued -= profileBaseTime; - profileInfo->submit -= profileBaseTime; - profileInfo->start -= profileBaseTime; - profileInfo->end -= profileBaseTime; - profileInfo->type = type; - profileInfo->name = name; - profileInfo->valid = true; - - return status; -} - - -/** - * Step through all non-primitive (arrays) args - * and determine if the field has changed - * The field may have been re-assigned by the Java code to NULL or another instance. - * If we detect a change then we discard the previous cl_mem buffer, - * the caller will detect that the buffers are null and will create new cl_mem buffers. - * @param jenv the java environment - * @param jobj the object we might be updating - * @param jniContext the context we're working in - * - * @throws CLException - */ -jint updateNonPrimitiveReferences(JNIEnv *jenv, jobject jobj, JNIContext* jniContext) { - cl_int status = CL_SUCCESS; - if (jniContext != NULL){ - for (jint i = 0; i < jniContext->argc; i++){ - KernelArg *arg = jniContext->args[i]; - - // make sure that the JNI arg reflects the latest type info from the instance. - // For example if the buffer is tagged as explicit and needs to be pushed - arg->syncType(jenv); - - if (config->isVerbose()){ - fprintf(stderr, "got type for %s: %08x\n", arg->name, arg->type); - } - - //this won't be a problem with the aparapi buffers because - //we need to copy them every time anyway - if (!arg->isPrimitive() && !arg->isAparapiBuffer()) { - // Following used for all primitive arrays, object arrays and nio Buffers - jarray newRef = (jarray)jenv->GetObjectField(arg->javaArg, KernelArg::javaArrayFieldID); - if (config->isVerbose()){ - fprintf(stderr, "testing for Resync javaArray %s: old=%p, new=%p\n", arg->name, arg->arrayBuffer->javaArray, newRef); - } - - if (!jenv->IsSameObject(newRef, arg->arrayBuffer->javaArray)) { - if (config->isVerbose()){ - fprintf(stderr, "Resync javaArray for %s: %p %p\n", arg->name, newRef, arg->arrayBuffer->javaArray); - } - // Free previous ref if any - if (arg->arrayBuffer->javaArray != NULL) { - jenv->DeleteWeakGlobalRef((jweak) arg->arrayBuffer->javaArray); - if (config->isVerbose()){ - fprintf(stderr, "DeleteWeakGlobalRef for %s: %p\n", arg->name, arg->arrayBuffer->javaArray); - } - } - - // need to free opencl buffers, run will reallocate later - if (arg->arrayBuffer->mem != 0) { - //fprintf(stderr, "-->releaseMemObject[%d]\n", i); - if (config->isTrackingOpenCLResources()){ - memList.remove(arg->arrayBuffer->mem,__LINE__, __FILE__); - } - status = clReleaseMemObject((cl_mem)arg->arrayBuffer->mem); - //fprintf(stderr, "<--releaseMemObject[%d]\n", i); - if(status != CL_SUCCESS) throw CLException(status, "clReleaseMemObject()"); - arg->arrayBuffer->mem = (cl_mem)0; - } - - arg->arrayBuffer->addr = NULL; - - // Capture new array ref from the kernel arg object - - if (newRef != NULL) { - arg->arrayBuffer->javaArray = (jarray)jenv->NewWeakGlobalRef((jarray)newRef); - if (config->isVerbose()){ - fprintf(stderr, "NewWeakGlobalRef for %s, set to %p\n", arg->name, - arg->arrayBuffer->javaArray); - } - } else { - arg->arrayBuffer->javaArray = NULL; - } - - // Save the lengthInBytes which was set on the java side - arg->syncSizeInBytes(jenv); - - if (config->isVerbose()){ - fprintf(stderr, "updateNonPrimitiveReferences, args[%d].lengthInBytes=%d\n", i, arg->arrayBuffer->lengthInBytes); - } - } // object has changed - } - } // for each arg - } // if jniContext != NULL - return(status); -} - -/** - * if we are profiling events the test a first event, and report profiling info. - * - * @param jniContest the context holding the information we got form Java - * - * @throws CLException - */ -void profileFirstRun(JNIContext* jniContext) { - cl_event firstEvent; - int status = CL_SUCCESS; - - status = enqueueMarker(jniContext->commandQueue, &firstEvent); - if (status != CL_SUCCESS) throw CLException(status, "clEnqueueMarker endOfTxfers"); - - status = clWaitForEvents(1, &firstEvent); - if (status != CL_SUCCESS) throw CLException(status,"clWaitForEvents"); - - status = clGetEventProfilingInfo(firstEvent, CL_PROFILING_COMMAND_QUEUED, sizeof(jniContext->profileBaseTime), &(jniContext->profileBaseTime), NULL); - if (status != CL_SUCCESS) throw CLException(status, "clGetEventProfilingInfo#1"); - - clReleaseEvent(firstEvent); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() read event"); - - if (config->isVerbose()) { - fprintf(stderr, "profileBaseTime %lu \n", (unsigned long)jniContext->profileBaseTime); - } -} - - -void updateArray(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - - cl_int status = CL_SUCCESS; - // if either this is the first run or user changed input array - // or gc moved something, then we create buffers/args - cl_uint mask = CL_MEM_USE_HOST_PTR; - if (arg->isReadByKernel() && arg->isMutableByKernel()) mask |= CL_MEM_READ_WRITE; - else if (arg->isReadByKernel() && !arg->isMutableByKernel()) mask |= CL_MEM_READ_ONLY; - else if (arg->isMutableByKernel()) mask |= CL_MEM_WRITE_ONLY; - arg->arrayBuffer->memMask = mask; - - if (config->isVerbose()) { - strcpy(arg->arrayBuffer->memSpec,"CL_MEM_USE_HOST_PTR"); - if (mask & CL_MEM_READ_WRITE) strcat(arg->arrayBuffer->memSpec,"|CL_MEM_READ_WRITE"); - if (mask & CL_MEM_READ_ONLY) strcat(arg->arrayBuffer->memSpec,"|CL_MEM_READ_ONLY"); - if (mask & CL_MEM_WRITE_ONLY) strcat(arg->arrayBuffer->memSpec,"|CL_MEM_WRITE_ONLY"); - - fprintf(stderr, "%s %d clCreateBuffer(context, %s, size=%08lx bytes, address=%p, &status)\n", arg->name, - argIdx, arg->arrayBuffer->memSpec, (unsigned long)arg->arrayBuffer->lengthInBytes, arg->arrayBuffer->addr); - } - - arg->arrayBuffer->mem = clCreateBuffer(jniContext->context, arg->arrayBuffer->memMask, - arg->arrayBuffer->lengthInBytes, arg->arrayBuffer->addr, &status); - - if(status != CL_SUCCESS) throw CLException(status,"clCreateBuffer"); - - if (config->isTrackingOpenCLResources()){ - memList.add(arg->arrayBuffer->mem, __LINE__, __FILE__); - } - - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(cl_mem), (void *)&(arg->arrayBuffer->mem)); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (array)"); - - // Add the array length if needed - if (arg->usesArrayLength()) { - argPos++; - arg->syncJavaArrayLength(jenv); - - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(jint), &(arg->arrayBuffer->length)); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (array length)"); - - if (config->isVerbose()){ - fprintf(stderr, "runKernel arg %d %s, length = %d\n", argIdx, arg->name, arg->arrayBuffer->length); - } - } -} - -void updateBuffer(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - - AparapiBuffer* buffer = arg->aparapiBuffer; - cl_int status = CL_SUCCESS; - cl_uint mask = CL_MEM_USE_HOST_PTR; - if (arg->isReadByKernel() && arg->isMutableByKernel()) mask |= CL_MEM_READ_WRITE; - else if (arg->isReadByKernel() && !arg->isMutableByKernel()) mask |= CL_MEM_READ_ONLY; - else if (arg->isMutableByKernel()) mask |= CL_MEM_WRITE_ONLY; - buffer->memMask = mask; - - buffer->mem = clCreateBuffer(jniContext->context, buffer->memMask, - buffer->lengthInBytes, buffer->data, &status); - - if(status != CL_SUCCESS) throw CLException(status,"clCreateBuffer"); - - if (config->isTrackingOpenCLResources()){ - memList.add(buffer->mem, __LINE__, __FILE__); - } - - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(cl_mem), (void *)&(buffer->mem)); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (buffer)"); - - // Add the array length if needed - if (arg->usesArrayLength()) { - - for(int i = 0; i < buffer->numDims; i++) { - argPos++; - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(cl_uint), &(buffer->lens[i])); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (buffer length)"); - if (config->isVerbose()){ - fprintf(stderr, "runKernel arg %d %s, length = %d\n", argIdx, arg->name, buffer->lens[i]); - } - argPos++; - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(cl_uint), &(buffer->dims[i])); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (buffer dimension)"); - if (config->isVerbose()){ - fprintf(stderr, "runKernel arg %d %s, dim = %d\n", argIdx, arg->name, buffer->dims[i]); - } - } - } -} - - -/** - * manages the memory of KernelArgs that are object. i.e. handels pinning, and moved objects. - * currently the only objects supported are arrays. - * - * @param jenv the java environment - * @param jniContext the context we got from java - * @param arg the argument we're processing - * @param argPos out: the position of arg in the opencl argument list - * @param argIdx the position of arg in the argument array - * - * @throws CLException - */ -void processObject(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - if(arg->isArray()) { - processArray(jenv, jniContext, arg, argPos, argIdx); - } else if(arg->isAparapiBuffer()) { - processBuffer(jenv, jniContext, arg, argPos, argIdx); - } -} - -void processArray(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - - cl_int status = CL_SUCCESS; - - if (config->isProfilingEnabled()){ - arg->arrayBuffer->read.valid = false; - arg->arrayBuffer->write.valid = false; - } - - // pin the arrays so that GC does not move them during the call - - // get the C memory address for the region being transferred - // this uses different JNI calls for arrays vs. directBufs - void * prevAddr = arg->arrayBuffer->addr; - arg->pin(jenv); - - if (config->isVerbose()) { - fprintf(stderr, "runKernel: arrayOrBuf ref %p, oldAddr=%p, newAddr=%p, ref.mem=%p isCopy=%s\n", - arg->arrayBuffer->javaArray, - prevAddr, - arg->arrayBuffer->addr, - arg->arrayBuffer->mem, - arg->arrayBuffer->isCopy ? "true" : "false"); - fprintf(stderr, "at memory addr %p, contents: ", arg->arrayBuffer->addr); - unsigned char *pb = (unsigned char *) arg->arrayBuffer->addr; - for (int k=0; k<8; k++) { - fprintf(stderr, "%02x ", pb[k]); - } - fprintf(stderr, "\n" ); - } - - // record whether object moved - // if we see that isCopy was returned by getPrimitiveArrayCritical, treat that as a move - bool objectMoved = (arg->arrayBuffer->addr != prevAddr) || arg->arrayBuffer->isCopy; - - if (config->isVerbose()){ - if (arg->isExplicit() && arg->isExplicitWrite()){ - fprintf(stderr, "explicit write of %s\n", arg->name); - } - } - - if (jniContext->firstRun || (arg->arrayBuffer->mem == 0) || objectMoved ){ - if (arg->arrayBuffer->mem != 0 && objectMoved) { - // we need to release the old buffer - if (config->isTrackingOpenCLResources()) { - memList.remove((cl_mem)arg->arrayBuffer->mem, __LINE__, __FILE__); - } - status = clReleaseMemObject((cl_mem)arg->arrayBuffer->mem); - //fprintf(stdout, "dispose arg %d %0lx\n", i, arg->arrayBuffer->mem); - - //this needs to be reported, but we can still keep going - CLException::checkCLError(status, "clReleaseMemObject()"); - - arg->arrayBuffer->mem = (cl_mem)0; - } - - updateArray(jenv, jniContext, arg, argPos, argIdx); - - } else { - // Keep the arg position in sync if no updates were required - if (arg->usesArrayLength()){ - argPos++; - } - } - -} - -void processBuffer(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - - cl_int status = CL_SUCCESS; - - if (config->isProfilingEnabled()){ - arg->aparapiBuffer->read.valid = false; - arg->aparapiBuffer->write.valid = false; - } - - if (config->isVerbose()) { - fprintf(stderr, "runKernel: arrayOrBuf addr=%p, ref.mem=%p\n", - arg->aparapiBuffer->data, - arg->aparapiBuffer->mem); - fprintf(stderr, "at memory addr %p, contents: ", arg->aparapiBuffer->data); - unsigned char *pb = (unsigned char *) arg->aparapiBuffer->data; - for (int k=0; k<8; k++) { - fprintf(stderr, "%02x ", pb[k]); - } - fprintf(stderr, "\n" ); - } - - if (config->isVerbose()){ - if (arg->isExplicit() && arg->isExplicitWrite()){ - fprintf(stderr, "explicit write of %s\n", arg->name); - } - } - - if (arg->aparapiBuffer->mem != 0) { - if (config->isTrackingOpenCLResources()) { - memList.remove((cl_mem)arg->aparapiBuffer->mem, __LINE__, __FILE__); - } - status = clReleaseMemObject((cl_mem)arg->aparapiBuffer->mem); - //fprintf(stdout, "dispose arg %d %0lx\n", i, arg->aparapiBuffer->mem); - - //this needs to be reported, but we can still keep going - CLException::checkCLError(status, "clReleaseMemObject()"); - - arg->aparapiBuffer->mem = (cl_mem)0; - } - - updateBuffer(jenv, jniContext, arg, argPos, argIdx); - -} - - -/** - * keeps track of write events for KernelArgs. - * - * @param jenv the java envrionment - * @param jniContext the context we got from java - * @param arg the KernelArg to create a write event for - * @param argIdx the position of arg in the argument array - * @param writeEventCount out: the number of write events we've created so far - * - * @throws CLException - */ -void updateWriteEvents(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int argIdx, int& writeEventCount) { - - cl_int status = CL_SUCCESS; - - // we only enqueue a write if we know the kernel actually reads the buffer - // or if there is an explicit write pending - // the default behavior for Constant buffers is also that there is no write enqueued unless explicit - - if (config->isProfilingEnabled()) { - jniContext->writeEventArgs[writeEventCount] = argIdx; - } - - if(arg->isArray()) { - status = clEnqueueWriteBuffer(jniContext->commandQueue, arg->arrayBuffer->mem, CL_FALSE, 0, - arg->arrayBuffer->lengthInBytes, arg->arrayBuffer->addr, 0, NULL, &(jniContext->writeEvents[writeEventCount])); - } else if(arg->isAparapiBuffer()) { - status = clEnqueueWriteBuffer(jniContext->commandQueue, arg->aparapiBuffer->mem, CL_FALSE, 0, - arg->aparapiBuffer->lengthInBytes, arg->aparapiBuffer->data, 0, NULL, &(jniContext->writeEvents[writeEventCount])); - } - if(status != CL_SUCCESS) throw CLException(status,"clEnqueueWriteBuffer"); - - if (config->isTrackingOpenCLResources()){ - writeEventList.add(jniContext->writeEvents[writeEventCount],__LINE__, __FILE__); - } - writeEventCount++; - if (arg->isExplicit() && arg->isExplicitWrite()){ - if (config->isVerbose()){ - fprintf(stderr, "clearing explicit buffer bit %d %s\n", argIdx, arg->name); - } - arg->clearExplicitBufferBit(jenv); - } -} - - -/** - * sets the opencl kernel arguement for local args. - * - * @param jenv the java envrionment - * @param jniContext the context we got from java - * @param arg the KernelArg to create a write event for - * @param argPos out: the position of arg in the opencl argument list - * @param argIdx the position of arg in the argument array - * - * @throws CLException - */ -void processLocalArray(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - - cl_int status = CL_SUCCESS; - // what if local buffer size has changed? We need a check for resize here. - if (jniContext->firstRun) { - status = arg->setLocalBufferArg(jenv, argIdx, argPos, config->isVerbose()); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg() (local)"); - - // Add the array length if needed - if (arg->usesArrayLength()) { - arg->syncJavaArrayLength(jenv); - - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(jint), &(arg->arrayBuffer->length)); - - if (config->isVerbose()){ - fprintf(stderr, "runKernel arg %d %s, javaArrayLength = %d\n", argIdx, arg->name, arg->arrayBuffer->length); - } - - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (array length)"); - - } - } else { - // Keep the arg position in sync if no updates were required - if (arg->usesArrayLength()) { - argPos++; - } - } -} - -/** - * sets the opencl kernel arguement for local args. - * - * @param jenv the java envrionment - * @param jniContext the context we got from java - * @param arg the KernelArg to create a write event for - * @param argPos out: the position of arg in the opencl argument list - * @param argIdx the position of arg in the argument array - * - * @throws CLException - */ -void processLocalBuffer(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - - cl_int status = CL_SUCCESS; - // what if local buffer size has changed? We need a check for resize here. - if (jniContext->firstRun) { - status = arg->setLocalBufferArg(jenv, argIdx, argPos, config->isVerbose()); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg() (local)"); - - // Add the array length if needed - if (arg->usesArrayLength()) { - arg->syncJavaArrayLength(jenv); - - for(int i = 0; i < arg->aparapiBuffer->numDims; i++) - { - int length = arg->aparapiBuffer->lens[i]; - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(jint), &length); - if (config->isVerbose()){ - fprintf(stderr, "runKernel arg %d %s, javaArrayLength = %d\n", argIdx, arg->name, length); - } - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg (array length)"); - } - } - } else { - // Keep the arg position in sync if no updates were required - if (arg->usesArrayLength()) { - argPos += arg->aparapiBuffer->numDims; - } - } -} - -void processLocal(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx) { - if(arg->isArray()) processLocalArray(jenv,jniContext,arg,argPos,argIdx); - if(arg->isAparapiBuffer()) processLocalBuffer(jenv,jniContext,arg,argPos,argIdx); -} - - -/** - * processes all of the arguments for the OpenCL Kernel that we got from the JNIContext - * - * @param jenv the java environment - * @param jniContext the context with the arguements - * @param writeEventCount out: the number of arguements that could be written to - * @param argPos out: the absolute position of the last argument - * - * @throws CLException - */ -int processArgs(JNIEnv* jenv, JNIContext* jniContext, int& argPos, int& writeEventCount) { - - cl_int status = CL_SUCCESS; - - // argPos is used to keep track of the kernel arg position, it can - // differ from "argIdx" due to insertion of javaArrayLength args which are not - // fields read from the kernel object. - for (int argIdx = 0; argIdx < jniContext->argc; argIdx++, argPos++) { - - KernelArg *arg = jniContext->args[argIdx]; - - // make sure that the JNI arg reflects the latest type info from the instance. - // For example if the buffer is tagged as explicit and needs to be pushed - arg->syncType(jenv); - - if (config->isVerbose()){ - fprintf(stderr, "got type for arg %d, %s, type=%08x\n", argIdx, arg->name, arg->type); - } - - if (!arg->isPrimitive() && !arg->isLocal()) { - processObject(jenv, jniContext, arg, argPos, argIdx); - - if (arg->needToEnqueueWrite() && (!arg->isConstant() || arg->isExplicitWrite())) { - if (config->isVerbose()) { - fprintf(stderr, "%swriting %s%sbuffer argIndex=%d argPos=%d %s\n", - (arg->isExplicit() ? "explicitly " : ""), - (arg->isConstant() ? "constant " : ""), - (arg->isLocal() ? "local " : ""), - argIdx, - argPos, - arg->name); - } - updateWriteEvents(jenv, jniContext, arg, argIdx, writeEventCount); - } - } else if (arg->isLocal()) { - processLocal(jenv, jniContext, arg, argPos, argIdx); - } else { // primitive arguments - status = arg->setPrimitiveArg(jenv, argIdx, argPos, config->isVerbose()); - if(status != CL_SUCCESS) throw CLException(status,"clSetKernelArg()"); - } - - } // for each arg - return status; -} - -/** - * enqueus the current kernel to run on opencl - * - * @param jniContext the context with the arguements - * @param range the range that the kernel is running over - * @param passes the number of passes for the kernel - * @param argPos the number of arguments we passed to the kernel - * @param writeEventCount the number of arguement that will be updated - * - * @throws CLException - */ -void enqueueKernel(JNIContext* jniContext, Range& range, int passes, int argPos, int writeEventCount){ - // We will need to revisit the execution of multiple devices. - // POssibly cloning the range per device and mutating each to handle a unique subrange (of global) and - // maybe even pushing the offset into the range class. - - // size_t globalSize_0AsSizeT = (range.globalDims[0] /jniContext->deviceIdc); - // size_t localSize_0AsSizeT = range.localDims[0]; - - // To support multiple passes we add a 'secret' final arg called 'passid' and just schedule multiple enqueuendrange kernels. Each of which having a separate value of passid - - - // delete the last set - if (jniContext->exec) { - delete jniContext->exec; - jniContext->exec = NULL; - } - jniContext->passes = passes; - jniContext->exec = new ProfileInfo[passes]; - - cl_int status = CL_SUCCESS; - for (int passid=0; passid < passes; passid++) { - - //size_t offset = 1; // (size_t)((range.globalDims[0]/jniContext->deviceIdc)*dev); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(passid), &(passid)); - if (status != CL_SUCCESS) throw CLException(status, "clSetKernelArg() (passid)"); - - // wait for this event count - int writeCount = 0; - // list of events to wait for - cl_event* writeEvents = NULL; - - - - // ----------- - // fix for Mac OSX CPU driver (and possibly others) - // which fail to give correct maximum work group info - // while using clGetDeviceInfo - // see: http://www.openwall.com/lists/john-dev/2012/04/10/4 - cl_uint max_group_size[3]; - status = clGetKernelWorkGroupInfo(jniContext->kernel, - (cl_device_id)jniContext->deviceId, - CL_KERNEL_WORK_GROUP_SIZE, - sizeof(max_group_size), - &max_group_size, NULL); - - if (status != CL_SUCCESS) { - CLException(status, "clGetKernelWorkGroupInfo()").printError(); - } else { - range.localDims[0] = std::min((cl_uint)range.localDims[0], max_group_size[0]); - } - // ------ end fix - - - // two options here due to passid - // there may be 1 or more passes - // enqueue depends on write enqueues - // we don't block but and we populate the executeEvents - if (passid == 0) { - - writeCount = writeEventCount; - if(writeEventCount > 0) { - writeEvents = jniContext->writeEvents; - } - - // we are in some passid > 0 pass - // maybe middle or last! - // we don't depend on write enqueues - // we block and do supply executeEvents - } else { - //fprintf(stderr, "setting passid to %d of %d not first not last\n", passid, passes); - - status = clWaitForEvents(1, &jniContext->executeEvents[0]); - if (status != CL_SUCCESS) throw CLException(status, "clWaitForEvents() execute event"); - - if (config->isTrackingOpenCLResources()) { - executeEventList.remove(jniContext->executeEvents[0],__LINE__, __FILE__); - } - - status = clReleaseEvent(jniContext->executeEvents[0]); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() read event"); - - // We must capture any profile info for passid-1 so we must wait for the last execution to complete - if (passid == 1 && config->isProfilingEnabled()) { - - // Now we can profile info for passid-1 - status = profile(&jniContext->exec[passid-1], &jniContext->executeEvents[0], 1, NULL, jniContext->profileBaseTime); - if (status != CL_SUCCESS) throw CLException(status,""); - } - - } - - status = clEnqueueNDRangeKernel( - jniContext->commandQueue, - jniContext->kernel, - range.dims, - range.offsets, - range.globalDims, - range.localDims, - writeCount, - writeEvents, - &jniContext->executeEvents[0]); - - if (status != CL_SUCCESS) { - - for(int i = 0; iisTrackingOpenCLResources()){ - executeEventList.add(jniContext->executeEvents[0],__LINE__, __FILE__); - } - - } -} - - -/** - * set readEvents and readArgEvents - * readEvents[] will be populated with the event's that we will wait on below. - * readArgEvents[] will map the readEvent to the arg that originated it - * So if we had - * arg[0] read_write array - * arg[1] read array - * arg[2] write array - * arg[3] primitive - * arg[4] read array - * At the end of the call - * readCount=3 - * readEvent[0] = new read event for arg0 - * readArgEvent[0] = 0 - * readEvent[1] = new read event for arg1 - * readArgEvent[1] = 1 - * readEvent[2] = new read event for arg4 - * readArgEvent[2] = 4 - * - * @param jniContext the context we got from Java - * - * @return number of reads. - * It will never be > jniContext->argc which is the size of readEvents[] and readEventArgs[] - * - * @throws CLException - */ -int getReadEvents(JNIEnv* jenv, JNIContext* jniContext) { - - int readEventCount = 0; - - cl_int status = CL_SUCCESS; - for (int i=0; i< jniContext->argc; i++) { - KernelArg *arg = jniContext->args[i]; - - if (arg->needToEnqueueRead()){ - if (arg->isConstant()){ - fprintf(stderr, "reading %s\n", arg->name); - } - if (config->isProfilingEnabled()) { - jniContext->readEventArgs[readEventCount] = i; - } - if (config->isVerbose()){ - fprintf(stderr, "reading buffer %d %s\n", i, arg->name); - } - - if(arg->isArray()) { - status = clEnqueueReadBuffer(jniContext->commandQueue, arg->arrayBuffer->mem, - CL_FALSE, 0, arg->arrayBuffer->lengthInBytes, arg->arrayBuffer->addr, 1, - jniContext->executeEvents, &(jniContext->readEvents[readEventCount])); - } else if(arg->isAparapiBuffer()) { - status = clEnqueueReadBuffer(jniContext->commandQueue, arg->aparapiBuffer->mem, - CL_TRUE, 0, arg->aparapiBuffer->lengthInBytes, arg->aparapiBuffer->data, 1, - jniContext->executeEvents, &(jniContext->readEvents[readEventCount])); - arg->aparapiBuffer->inflate(jenv, arg); - } - - if (status != CL_SUCCESS) throw CLException(status, "clEnqueueReadBuffer()"); - - if (config->isTrackingOpenCLResources()){ - readEventList.add(jniContext->readEvents[readEventCount],__LINE__, __FILE__); - } - readEventCount++; - } - } - return readEventCount; -} - -/** - * wait for and release all the read events - * - * @param jniContext the context we got from Java - * @param readEventCount the number of read events to wait for - * @param passes the number of passes for the kernel - * - * @throws CLException - */ -void waitForReadEvents(JNIContext* jniContext, int readEventCount, int passes) { - - // don't change the order here - // We wait for the reads which each depend on the execution, which depends on the writes ;) - // So after the reads have completed, we can release the execute and writes. - - cl_int status = CL_SUCCESS; - - if (readEventCount > 0){ - - status = clWaitForEvents(readEventCount, jniContext->readEvents); - if (status != CL_SUCCESS) throw CLException(status, "clWaitForEvents() read events"); - - for (int i=0; i < readEventCount; i++){ - - if (config->isProfilingEnabled()) { - - status = profile(&jniContext->args[jniContext->readEventArgs[i]]->arrayBuffer->read, &jniContext->readEvents[i], 0,jniContext->args[jniContext->readEventArgs[i]]->name, jniContext->profileBaseTime); - if (status != CL_SUCCESS) throw CLException(status, ""); - } - status = clReleaseEvent(jniContext->readEvents[i]); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() read event"); - - if (config->isTrackingOpenCLResources()){ - readEventList.remove(jniContext->readEvents[i],__LINE__, __FILE__); - } - } - } else { - // if readEventCount == 0 then we don't need any reads so we just wait for the executions to complete - status = clWaitForEvents(1, jniContext->executeEvents); - if (status != CL_SUCCESS) throw CLException(status, "clWaitForEvents() execute event"); - } - - if (config->isTrackingOpenCLResources()){ - executeEventList.remove(jniContext->executeEvents[0],__LINE__, __FILE__); - } - if (config->isProfilingEnabled()) { - status = profile(&jniContext->exec[passes-1], &jniContext->executeEvents[0], 1, NULL, jniContext->profileBaseTime); // multi gpu ? - if (status != CL_SUCCESS) throw CLException(status, ""); - } - -} - -/** - * check to make sure opencl exited correctly and update java memory. - * - * @param jenv the java environment - * @param jniContext the context we got from Java - * @param writeEventCount the number of write events to wait for - * - * @throws CLException - */ -void checkEvents(JNIEnv* jenv, JNIContext* jniContext, int writeEventCount) { - // extract the execution status from the executeEvent - cl_int status; - cl_int executeStatus; - - status = clGetEventInfo(jniContext->executeEvents[0], CL_EVENT_COMMAND_EXECUTION_STATUS, sizeof(cl_int), &executeStatus, NULL); - if (status != CL_SUCCESS) throw CLException(status, "clGetEventInfo() execute event"); - if (executeStatus != CL_COMPLETE) throw CLException(executeStatus, "Execution status of execute event"); - - status = clReleaseEvent(jniContext->executeEvents[0]); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() read event"); - - for (int i = 0; i < writeEventCount; i++) { - - if (config->isProfilingEnabled()) { - profile(&jniContext->args[jniContext->writeEventArgs[i]]->arrayBuffer->write, &jniContext->writeEvents[i], 2, jniContext->args[jniContext->writeEventArgs[i]]->name, jniContext->profileBaseTime); - } - - status = clReleaseEvent(jniContext->writeEvents[i]); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() write event"); - - if (config->isTrackingOpenCLResources()){ - writeEventList.remove(jniContext->writeEvents[i],__LINE__, __FILE__); - } - } - - jniContext->unpinAll(jenv); - - if (config->isProfilingCSVEnabled()) { - writeProfileInfo(jniContext); - } - if (config->isTrackingOpenCLResources()){ - fprintf(stderr, "following execution of kernel{\n"); - commandQueueList.report(stderr); - memList.report(stderr); - readEventList.report(stderr); - executeEventList.report(stderr); - writeEventList.report(stderr); - fprintf(stderr, "}\n"); - } - - jniContext->firstRun = false; -} - -JNI_JAVA(jint, KernelRunnerJNI, runKernelJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle, jobject _range, jboolean needSync, jint passes) { - if (config == NULL){ - config = new Config(jenv); - } - - Range range(jenv, _range); - - cl_int status = CL_SUCCESS; - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - - - if (jniContext->firstRun && config->isProfilingEnabled()){ - try { - profileFirstRun(jniContext); - } catch(CLException& cle) { - cle.printError(); - return 0L; - } - } - - - int argPos = 0; - // Need to capture array refs - if (jniContext->firstRun || needSync) { - try { - updateNonPrimitiveReferences(jenv, jobj, jniContext); - } catch (CLException& cle) { - cle.printError(); - } - if (config->isVerbose()){ - fprintf(stderr, "back from updateNonPrimitiveReferences\n"); - } - } - - - try { - int writeEventCount = 0; - processArgs(jenv, jniContext, argPos, writeEventCount); - enqueueKernel(jniContext, range, passes, argPos, writeEventCount); - int readEventCount = getReadEvents(jenv, jniContext); - waitForReadEvents(jniContext, readEventCount, passes); - checkEvents(jenv, jniContext, writeEventCount); - } - catch(CLException& cle) { - cle.printError(); - jniContext->unpinAll(jenv); - return cle.status(); - } - - - - - //fprintf(stderr, "About to return %d from exec\n", status); - return(status); - } - - -// we return the JNIContext from here -JNI_JAVA(jlong, KernelRunnerJNI, initJNI) - (JNIEnv *jenv, jobject jobj, jobject kernelObject, jobject openCLDeviceObject, jint flags) { - if (openCLDeviceObject == NULL){ - fprintf(stderr, "no device object!\n"); - } - if (config == NULL){ - config = new Config(jenv); - } - cl_int status = CL_SUCCESS; - JNIContext* jniContext = new JNIContext(jenv, kernelObject, openCLDeviceObject, flags); - - if (jniContext->isValid()) { - - return((jlong)jniContext); - } else { - return(0L); - } - } - - -void writeProfile(JNIEnv* jenv, JNIContext* jniContext) { - // compute profile filename - // indicate cpu or gpu - // timestamp - // kernel name - - jclass classMethodAccess = jenv->FindClass("java/lang/Class"); - jmethodID getNameID = jenv->GetMethodID(classMethodAccess,"getName","()Ljava/lang/String;"); - jstring className = (jstring)jenv->CallObjectMethod(jniContext->kernelClass, getNameID); - const char *classNameChars = jenv->GetStringUTFChars(className, NULL); - - const size_t TIME_STR_LEN = 200; - - char timeStr[TIME_STR_LEN]; - struct tm *tmp; - time_t t = time(NULL); - tmp = localtime(&t); - if (tmp == NULL) { - perror("localtime"); - } - //strftime(timeStr, TIME_STR_LEN, "%F.%H%M%S", tmp); %F seemed to cause a core dump - strftime(timeStr, TIME_STR_LEN, "%H%M%S", tmp); - - char* fnameStr = new char[strlen(classNameChars) + strlen(timeStr) + 128]; - jint pid = getProcess(); - - //sprintf(fnameStr, "%s.%s.%d.%llx\n", classNameChars, timeStr, pid, jniContext); - sprintf(fnameStr, "aparapiprof.%s.%d.%p", timeStr, pid, jniContext); - jenv->ReleaseStringUTFChars(className, classNameChars); - - FILE* profileFile = fopen(fnameStr, "w"); - if (profileFile != NULL) { - jniContext->profileFile = profileFile; - } else { - jniContext->profileFile = stderr; - fprintf(stderr, "Could not open profile data file %s, reverting to stderr\n", fnameStr); - } - delete []fnameStr; -} - -JNI_JAVA(jlong, KernelRunnerJNI, buildProgramJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle, jstring source) { - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - if (jniContext == NULL){ - return 0; - } - - try { - cl_int status = CL_SUCCESS; - - jniContext->program = CLHelper::compile(jenv, jniContext->context, 1, &jniContext->deviceId, source, NULL, &status); - - if(status == CL_BUILD_PROGRAM_FAILURE) throw CLException(status, ""); - - jniContext->kernel = clCreateKernel(jniContext->program, "run", &status); - if(status != CL_SUCCESS) throw CLException(status,"clCreateKernel()"); - - cl_command_queue_properties queue_props = 0; - if (config->isProfilingEnabled()) { - queue_props |= CL_QUEUE_PROFILING_ENABLE; - } - - jniContext->commandQueue = clCreateCommandQueue(jniContext->context, (cl_device_id)jniContext->deviceId, - queue_props, - &status); - if(status != CL_SUCCESS) throw CLException(status,"clCreateCommandQueue()"); - - commandQueueList.add(jniContext->commandQueue, __LINE__, __FILE__); - - if (config->isProfilingCSVEnabled()) { - writeProfile(jenv, jniContext); - } - } catch(CLException& cle) { - cle.printError(); - return 0; - } - - - return((jlong)jniContext); - } - - -// this is called once when the arg list is first determined for this kernel -JNI_JAVA(jint, KernelRunnerJNI, setArgsJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle, jobjectArray argArray, jint argc) { - if (config == NULL) { - config = new Config(jenv); - } - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - cl_int status = CL_SUCCESS; - if (jniContext != NULL){ - jniContext->argc = argc; - jniContext->args = new KernelArg*[jniContext->argc]; - jniContext->firstRun = true; - - // Step through the array of KernelArg's to capture the type data for the Kernel's data members. - for (jint i = 0; i < jniContext->argc; i++){ - jobject argObj = jenv->GetObjectArrayElement(argArray, i); - KernelArg* arg = jniContext->args[i] = new KernelArg(jenv, jniContext, argObj); - if (config->isVerbose()){ - if (arg->isExplicit()){ - fprintf(stderr, "%s is explicit!\n", arg->name); - } - } - - if (config->isVerbose()){ - fprintf(stderr, "in setArgs arg %d %s type %08x\n", i, arg->name, arg->type); - if (arg->isLocal()){ - fprintf(stderr, "in setArgs arg %d %s is local\n", i, arg->name); - }else if (arg->isConstant()){ - fprintf(stderr, "in setArgs arg %d %s is constant\n", i, arg->name); - }else{ - fprintf(stderr, "in setArgs arg %d %s is *not* local\n", i, arg->name); - } - } - - //If an error occurred, return early so we report the first problem, not the last - if (jenv->ExceptionCheck() == JNI_TRUE) { - jniContext->argc = -1; - delete[] jniContext->args; - jniContext->args = NULL; - jniContext->firstRun = true; - return (status); - } - - } - // we will need an executeEvent buffer for all devices - jniContext->executeEvents = new cl_event[1]; - - // We will need *at most* jniContext->argc read/write events - jniContext->readEvents = new cl_event[jniContext->argc]; - if (config->isProfilingEnabled()) { - jniContext->readEventArgs = new jint[jniContext->argc]; - } - jniContext->writeEvents = new cl_event[jniContext->argc]; - if (config->isProfilingEnabled()) { - jniContext->writeEventArgs = new jint[jniContext->argc]; - } - } - return(status); - } - - - -JNI_JAVA(jstring, KernelRunnerJNI, getExtensionsJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle) { - if (config == NULL){ - config = new Config(jenv); - } - jstring jextensions = NULL; - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - if (jniContext != NULL){ - cl_int status = CL_SUCCESS; - jextensions = CLHelper::getExtensions(jenv, jniContext->deviceId, &status); - } - return jextensions; - } - -/** - * find the arguement in our list of KernelArgs that matches the array the user asked for - * - * @param jenv the java environment - * @param jniContext the context we're working in - * @param buffer the array we're looking for - * - * @return the KernelArg representing the array - */ -KernelArg* getArgForBuffer(JNIEnv* jenv, JNIContext* jniContext, jobject buffer) { - KernelArg *returnArg = NULL; - - if (jniContext != NULL){ - for (jint i = 0; returnArg == NULL && i < jniContext->argc; i++){ - KernelArg *arg = jniContext->args[i]; - if (arg->isArray()) { - jboolean isSame = jenv->IsSameObject(buffer, arg->arrayBuffer->javaArray); - if (isSame){ - if (config->isVerbose()){ - fprintf(stderr, "matched arg '%s'\n", arg->name); - } - returnArg = arg; - }else{ - if (config->isVerbose()){ - fprintf(stderr, "unmatched arg '%s'\n", arg->name); - } - } - } else if(arg->isAparapiBuffer()) { - jboolean isSame = jenv->IsSameObject(buffer, arg->aparapiBuffer->getJavaObject(jenv,arg)); - if (isSame) { - if (config->isVerbose()) { - fprintf(stderr, "matched arg '%s'\n", arg->name); - } - returnArg = arg; - } else { - if (config->isVerbose()) { - fprintf(stderr, "unmatched arg '%s'\n", arg->name); - } - } - } - } - if (returnArg == NULL){ - if (config->isVerbose()){ - fprintf(stderr, "attempt to get arg for buffer that does not appear to be referenced from kernel\n"); - } - } - } - return returnArg; -} - -// Called as a result of Kernel.get(someArray) -JNI_JAVA(jint, KernelRunnerJNI, getJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle, jobject buffer) { - if (config == NULL){ - config = new Config(jenv); - } - cl_int status = CL_SUCCESS; - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - if (jniContext != NULL){ - KernelArg *arg = getArgForBuffer(jenv, jniContext, buffer); - if (arg != NULL){ - if (config->isVerbose()){ - fprintf(stderr, "explicitly reading buffer %s\n", arg->name); - } - if(arg->isArray()) { - arg->pin(jenv); - - try { - status = clEnqueueReadBuffer(jniContext->commandQueue, arg->arrayBuffer->mem, - CL_FALSE, 0, - arg->arrayBuffer->lengthInBytes, - arg->arrayBuffer->addr , 0, NULL, - &jniContext->readEvents[0]); - if (config->isVerbose()){ - fprintf(stderr, "explicitly read %s ptr=%p len=%d\n", - arg->name, arg->arrayBuffer->addr, - arg->arrayBuffer->lengthInBytes ); - } - if (status != CL_SUCCESS) throw CLException(status, "clEnqueueReadBuffer()"); - - status = clWaitForEvents(1, jniContext->readEvents); - if (status != CL_SUCCESS) throw CLException(status, "clWaitForEvents"); - - if (config->isProfilingEnabled()) { - status = profile(&arg->arrayBuffer->read, &jniContext->readEvents[0], 0, - arg->name, jniContext->profileBaseTime); - if (status != CL_SUCCESS) throw CLException(status, "profile "); - } - - status = clReleaseEvent(jniContext->readEvents[0]); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() read event"); - - // since this is an explicit buffer get, - // we expect the buffer to have changed so we commit - arg->unpin(jenv); // was unpinCommit - - //something went wrong print the error and exit - } catch(CLException& cle) { - cle.printError(); - return status; - } - } else if(arg->isAparapiBuffer()) { - - try { - status = clEnqueueReadBuffer(jniContext->commandQueue, arg->aparapiBuffer->mem, - CL_FALSE, 0, - arg->aparapiBuffer->lengthInBytes, - arg->aparapiBuffer->data, 0, NULL, - &jniContext->readEvents[0]); - if (config->isVerbose()){ - fprintf(stderr, "explicitly read %s ptr=%p len=%d\n", - arg->name, arg->aparapiBuffer->data, - arg->aparapiBuffer->lengthInBytes ); - } - if (status != CL_SUCCESS) throw CLException(status, "clEnqueueReadBuffer()"); - - status = clWaitForEvents(1, jniContext->readEvents); - if (status != CL_SUCCESS) throw CLException(status, "clWaitForEvents"); - - if (config->isProfilingEnabled()) { - status = profile(&arg->aparapiBuffer->read, &jniContext->readEvents[0], 0, - arg->name, jniContext->profileBaseTime); - if (status != CL_SUCCESS) throw CLException(status, "profile "); - } - - status = clReleaseEvent(jniContext->readEvents[0]); - if (status != CL_SUCCESS) throw CLException(status, "clReleaseEvent() read event"); - - arg->aparapiBuffer->inflate(jenv,arg); - - //something went wrong print the error and exit - } catch(CLException& cle) { - cle.printError(); - return status; - } - } - } else { - if (config->isVerbose()){ - fprintf(stderr, "attempt to request to get a buffer that does not appear to be referenced from kernel\n"); - } - } - } - return 0; - } - -JNI_JAVA(jobject, KernelRunnerJNI, getProfileInfoJNI) - (JNIEnv *jenv, jobject jobj, jlong jniContextHandle) { - if (config == NULL){ - config = new Config(jenv); - } - cl_int status = CL_SUCCESS; - JNIContext* jniContext = JNIContext::getJNIContext(jniContextHandle); - jobject returnList = NULL; - if (jniContext != NULL){ - returnList = JNIHelper::createInstance(jenv, ArrayListClass, VoidReturn ); - if (config->isProfilingEnabled()){ - - for (jint i = 0; i < jniContext->argc; i++){ - KernelArg *arg = jniContext->args[i]; - if (arg->isArray()){ - if (arg->isMutableByKernel() && arg->arrayBuffer->write.valid){ - jobject writeProfileInfo = arg->arrayBuffer->write.createProfileInfoInstance(jenv); - JNIHelper::callVoid(jenv, returnList, "add", ArgsBooleanReturn(ObjectClassArg), writeProfileInfo); - } - } - } - - for (jint pass = 0; pass < jniContext->passes; pass++){ - jobject executeProfileInfo = jniContext->exec[pass].createProfileInfoInstance(jenv); - JNIHelper::callVoid(jenv, returnList, "add", ArgsBooleanReturn(ObjectClassArg), executeProfileInfo); - } - - for (jint i = 0; i < jniContext->argc; i++){ - KernelArg *arg = jniContext->args[i]; - if (arg->isArray()){ - if (arg->isReadByKernel() && arg->arrayBuffer->read.valid){ - jobject readProfileInfo = arg->arrayBuffer->read.createProfileInfoInstance(jenv); - JNIHelper::callVoid(jenv, returnList, "add", ArgsBooleanReturn(ObjectClassArg), readProfileInfo); - } - } - } - } - } - return returnList; - } - diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/Aparapi.h b/com.amd.aparapi.jni/src/cpp/runKernel/Aparapi.h deleted file mode 100644 index b2b7258c..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/Aparapi.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security�s website at http://www.bis.doc.gov/. - */ - -#ifndef APARAPI_H -#define APARAPI_H - - -#include "Common.h" -#include "com_amd_aparapi_internal_jni_KernelRunnerJNI.h" -#include "CLException.h" -#include "Range.h" -#include "KernelArg.h" -#include "JNIContext.h" - -//compiler dependant code -int enqueueMarker(cl_command_queue commandQueue, cl_event* firstEvent); -jint getProcess(); - -/* -void idump(const char *str, void *ptr, int size); - -void fdump(const char *str, void *ptr, int size); -*/ - -jint writeProfileInfo(JNIContext* jniContext); - -cl_int profile(ProfileInfo *profileInfo, cl_event *event, jint type, char* name, cl_ulong profileBaseTime); - -jint updateNonPrimitiveReferences(JNIEnv *jenv, jobject jobj, JNIContext* jniContext); - -void profileFirstRun(JNIContext* jniContext); - -void updateArray(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); -void updateBuffer(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); - -void processObject(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); -void processArray(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); -void processBuffer(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); - -void updateWriteEvents(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int argIdx, int& writeEventCount); - -void processLocal(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); -void processLocalArray(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); -void processLocalBuffer(JNIEnv* jenv, JNIContext* jniContext, KernelArg* arg, int& argPos, int argIdx); - -int processArgs(JNIEnv* jenv, JNIContext* jniContext, int& argPos, int& writeEventCount); - -void enqueueKernel(JNIContext* jniContext, Range& range, int passes, int argPos, int writeEventCount); - -int getReadEvents(JNIContext* jniContext); - -void waitForReadEvents(JNIContext* jniContext, int readEventCount, int passes); - -void checkEvents(JNIEnv* jenv, JNIContext* jniContext, int writeEventCount); - -void writeProfile(JNIEnv* jenv, JNIContext* jniContext); - -KernelArg* getArgForBuffer(JNIEnv* jenv, JNIContext* jniContext, jobject buffer); - - -#endif // APARAPI_H diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/AparapiBuffer.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/AparapiBuffer.cpp deleted file mode 100644 index f5fcb19c..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/AparapiBuffer.cpp +++ /dev/null @@ -1,1557 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ -#define APARAPIBUFFER_SOURCE -#include "AparapiBuffer.h" -#include "KernelArg.h" - -AparapiBuffer::AparapiBuffer(): - javaObject((jobject) 0), - numDims(0), - dims(NULL), - lengthInBytes(0), - mem((cl_mem) 0), - data(NULL), - memMask((cl_uint)0) { - } - -AparapiBuffer::AparapiBuffer(void* _data, cl_uint* _lens, cl_uint _numDims, long _lengthInBytes, jobject _javaObject) : - data(_data), - lens(_lens), - numDims(_numDims), - lengthInBytes(_lengthInBytes), - javaObject(_javaObject), - mem((cl_mem) 0), - memMask((cl_uint)0) -{ - dims = new cl_uint[_numDims]; - for(int i = 0; i < _numDims; i++) { - dims[i] = 1; - for(int j = i+1; j < _numDims; j++) { - dims[i] *= lens[j]; - } - } -} - -jobject AparapiBuffer::getJavaObject(JNIEnv* env, KernelArg* arg) { - return JNIHelper::getInstanceField(env, arg->javaArg, "javaBuffer", ObjectClassArg); -} - - -AparapiBuffer* AparapiBuffer::flatten(JNIEnv* env, jobject arg, int type) { - int numDims = JNIHelper::getInstanceField(env, arg, "numDims", IntArg); - if(numDims == 2 && isBoolean(type)) { - return AparapiBuffer::flattenBoolean2D(env,arg); - } else if(numDims == 2 && isByte(type)) { - return AparapiBuffer::flattenByte2D(env,arg); - } else if(numDims == 2 && isShort(type)) { - return AparapiBuffer::flattenShort2D(env,arg); - } else if(numDims == 2 && isInt(type)) { - return AparapiBuffer::flattenInt2D(env,arg); - } else if(numDims == 2 && isLong(type)) { - return AparapiBuffer::flattenLong2D(env,arg); - } else if(numDims == 2 && isFloat(type)) { - return AparapiBuffer::flattenFloat2D(env,arg); - } else if(numDims == 2 && isDouble(type)) { - return AparapiBuffer::flattenDouble2D(env,arg); - } else if(numDims == 3 && isBoolean(type)) { - return AparapiBuffer::flattenBoolean3D(env,arg); - } else if(numDims == 3 && isByte(type)) { - return AparapiBuffer::flattenByte3D(env,arg); - } else if(numDims == 3 && isShort(type)) { - return AparapiBuffer::flattenShort3D(env,arg); - } else if(numDims == 3 && isInt(type)) { - return AparapiBuffer::flattenInt3D(env,arg); - } else if(numDims == 3 && isLong(type)) { - return AparapiBuffer::flattenLong3D(env,arg); - } else if(numDims == 3 && isFloat(type)) { - return AparapiBuffer::flattenFloat3D(env,arg); - } else if(numDims == 3 && isDouble(type)) { - return AparapiBuffer::flattenDouble3D(env,arg); - } - return new AparapiBuffer(); -} - - -AparapiBuffer* AparapiBuffer::flattenBoolean2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jbooleanArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jboolean); - - jboolean* array = new jboolean[totalSize]; - /* - jbooleanArray* jArray = new jbooleanArray[dims[0]]; - jboolean** elems = new jboolean*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jbooleanArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetBooleanArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseBooleanArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jbooleanArray jArray = (jbooleanArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jboolean* elems = env->GetBooleanArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseBooleanArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenByte2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jbyteArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jbyte); - - jbyte* array = new jbyte[totalSize]; - /* - jbyteArray* jArray = new jbyteArray[dims[0]]; - jbyte** elems = new jbyte*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jbyteArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetByteArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseByteArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jbyteArray jArray = (jbyteArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jbyte* elems = env->GetByteArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseByteArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenShort2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jshortArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jshort); - - jshort* array = new jshort[totalSize]; - /* - jshortArray* jArray = new jshortArray[dims[0]]; - jshort** elems = new jshort*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jshortArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetShortArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseShortArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jshortArray jArray = (jshortArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jshort* elems = env->GetShortArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseShortArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenInt2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jintArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jint); - - jint* array = new jint[totalSize]; - /* - jintArray* jArray = new jintArray[dims[0]]; - jint** elems = new jint*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jintArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetIntArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseIntArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jintArray jArray = (jintArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jint* elems = env->GetIntArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseIntArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenLong2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jlongArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jlong); - - jlong* array = new jlong[totalSize]; - /* - jlongArray* jArray = new jlongArray[dims[0]]; - jlong** elems = new jlong*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jlongArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetLongArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseLongArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jlongArray jArray = (jlongArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jlong* elems = env->GetLongArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseLongArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenFloat2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jfloatArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jfloat); - - jfloat* array = new jfloat[totalSize]; - /* - jfloatArray* jArray = new jfloatArray[dims[0]]; - jfloat** elems = new jfloat*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jfloatArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetFloatArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseFloatArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jfloatArray jArray = (jfloatArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jfloat* elems = env->GetFloatArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseFloatArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenDouble2D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[2]; - dims[0] = env->GetArrayLength((jobjectArray)javaBuffer); - dims[1] = env->GetArrayLength((jdoubleArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, 0)); - int totalSize = dims[0] * dims[1]; - long bitSize = totalSize * sizeof(jdouble); - - jdouble* array = new jdouble[totalSize]; - /* - jdoubleArray* jArray = new jdoubleArray[dims[0]]; - jdouble** elems = new jdouble*[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = (jdoubleArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - elems[i] = env->GetDoubleArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[i][j]; - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - env->ReleaseDoubleArrayElements(jArray[i], elems[i], 0); - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jdoubleArray jArray = (jdoubleArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - jdouble* elems = env->GetDoubleArrayElements(jArray,0); - - for(int j = 0; j < (int)dims[1]; j++) { - array[i*dims[1] + j] = elems[j]; - } - env->ReleaseDoubleArrayElements(jArray, elems, 0); - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 2, bitSize, javaBuffer); -} - - -AparapiBuffer* AparapiBuffer::flattenBoolean3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jbooleanArray j2 = (jbooleanArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - long bitSize = totalSize * sizeof(jboolean); - - jboolean* array = new jboolean[totalSize]; - /* - jbooleanArray** jArray = new jbooleanArray*[dims[0]]; - jboolean*** elems = new jboolean**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jbooleanArray[dims[1]]; - elems[i] = new jboolean*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jbooleanArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetBooleanArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseBooleanArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jbooleanArray jArray = (jbooleanArray)env->GetObjectArrayElement(jrow, j); - jboolean* elems = env->GetBooleanArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[k]; - } - env->ReleaseBooleanArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenByte3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jbyteArray j2 = (jbyteArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - long bitSize = totalSize * sizeof(jbyte); - - jbyte* array = new jbyte[totalSize]; - /* - jbyteArray** jArray = new jbyteArray*[dims[0]]; - jbyte*** elems = new jbyte**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jbyteArray[dims[1]]; - elems[i] = new jbyte*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jbyteArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetByteArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseByteArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jbyteArray jArray = (jbyteArray)env->GetObjectArrayElement(jrow, j); - jbyte* elems = env->GetByteArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[k]; - } - env->ReleaseByteArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenShort3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jshortArray j2 = (jshortArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - long bitSize = totalSize * sizeof(jshort); - - jshort* array = new jshort[totalSize]; - /* - jshortArray** jArray = new jshortArray*[dims[0]]; - jshort*** elems = new jshort**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jshortArray[dims[1]]; - elems[i] = new jshort*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jshortArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetShortArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseShortArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jshortArray jArray = (jshortArray)env->GetObjectArrayElement(jrow, j); - jshort* elems = env->GetShortArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[k]; - } - env->ReleaseShortArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenInt3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jintArray j2 = (jintArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - long bitSize = totalSize * sizeof(jint); - - jint* array = new jint[totalSize]; - /* - jintArray** jArray = new jintArray*[dims[0]]; - jint*** elems = new jint**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jintArray[dims[1]]; - elems[i] = new jint*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jintArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetIntArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseIntArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jintArray jArray = (jintArray)env->GetObjectArrayElement(jrow, j); - jint* elems = env->GetIntArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[k]; - } - env->ReleaseIntArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenLong3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jlongArray j2 = (jlongArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - jlong bitSize = totalSize * sizeof(jlong); - - jlong* array = new jlong[totalSize]; - /* - jlongArray** jArray = new jlongArray*[dims[0]]; - jlong*** elems = new jlong**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jlongArray[dims[1]]; - elems[i] = new jlong*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jlongArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetLongArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseLongArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jlongArray jArray = (jlongArray)env->GetObjectArrayElement(jrow, j); - jlong* elems = env->GetLongArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[k]; - } - env->ReleaseLongArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenFloat3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jfloatArray j2 = (jfloatArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - long bitSize = totalSize * sizeof(jfloat); - - jfloat* array = new jfloat[totalSize]; - /* - jfloatArray** jArray = new jfloatArray*[dims[0]]; - jfloat*** elems = new jfloat**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jfloatArray[dims[1]]; - elems[i] = new jfloat*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jfloatArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetFloatArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseFloatArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jfloatArray jArray = (jfloatArray)env->GetObjectArrayElement(jrow, j); - jfloat* elems = env->GetFloatArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[k]; - } - env->ReleaseFloatArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - -AparapiBuffer* AparapiBuffer::flattenDouble3D(JNIEnv* env, jobject arg) { - - jobject javaBuffer = JNIHelper::getInstanceField(env, arg, "javaBuffer", ObjectClassArg); - cl_uint* dims = new cl_uint[3]; - jobjectArray j0 = (jobjectArray)javaBuffer; - jobjectArray j1 = (jobjectArray)env->GetObjectArrayElement(j0, 0); - jdoubleArray j2 = (jdoubleArray)env->GetObjectArrayElement(j1, 0); - dims[0] = env->GetArrayLength(j0); - dims[1] = env->GetArrayLength(j1); - dims[2] = env->GetArrayLength(j2); - - int totalSize = dims[0] * dims[1] * dims[2]; - long bitSize = totalSize * sizeof(jdouble); - - jdouble* array = new jdouble[totalSize]; - /* - jdoubleArray** jArray = new jdoubleArray*[dims[0]]; - jdouble*** elems = new jdouble**[dims[0]]; - - for(int i = 0; i < (int)dims[0]; i++) { - jArray[i] = new jdoubleArray[dims[1]]; - elems[i] = new jdouble*[dims[1]]; - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jArray[i][j] = (jdoubleArray)env->GetObjectArrayElement(jrow, j); - elems[i][j] = env->GetDoubleArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[2] + k] = elems[i][j][k]; - } - } - } - - for(int i = 0; i < (int)dims[0]; i++) { - for(int j = 0; j < (int)dims[1]; j++) { - env->ReleaseDoubleArrayElements(jArray[i][j], elems[i][j], 0); - } - delete[] jArray[i]; - delete[] elems[i]; - } - delete[] jArray; - delete[] elems; - */ - - for(int i = 0; i < (int)dims[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement((jobjectArray)javaBuffer, i); - for(int j = 0; j < (int)dims[1]; j++) { - jdoubleArray jArray = (jdoubleArray)env->GetObjectArrayElement(jrow, j); - jdouble* elems = env->GetDoubleArrayElements(jArray,0); - for(int k = 0; k < (int)dims[2]; k++) { - array[i*dims[1]*dims[2] + j*dims[1] + k] = elems[k]; - } - env->ReleaseDoubleArrayElements(jArray, elems, 0); - } - } - - return new AparapiBuffer((void*)array, (cl_uint*)dims, 3, bitSize, javaBuffer); -} - - - -void AparapiBuffer::inflate(JNIEnv* env, KernelArg* arg) { - javaObject = JNIHelper::getInstanceField(env, arg->javaArg, "javaBuffer", ObjectClassArg); - if(numDims == 2 && arg->isBoolean()) { - AparapiBuffer::inflateBoolean2D(env, arg); - } else if(numDims == 2 && arg->isByte()) { - AparapiBuffer::inflateByte2D(env, arg); - } else if(numDims == 2 && arg->isShort()) { - AparapiBuffer::inflateShort2D(env, arg); - } else if(numDims == 2 && arg->isInt()) { - AparapiBuffer::inflateInt2D(env, arg); - } else if(numDims == 2 && arg->isLong()) { - AparapiBuffer::inflateLong2D(env, arg); - } else if(numDims == 2 && arg->isFloat()) { - AparapiBuffer::inflateFloat2D(env, arg); - } else if(numDims == 2 && arg->isDouble()) { - AparapiBuffer::inflateDouble2D(env, arg); - } else if(numDims == 3 && arg->isBoolean()) { - AparapiBuffer::inflateBoolean3D(env, arg); - } else if(numDims == 3 && arg->isByte()) { - AparapiBuffer::inflateByte3D(env, arg); - } else if(numDims == 3 && arg->isShort()) { - AparapiBuffer::inflateShort3D(env, arg); - } else if(numDims == 3 && arg->isInt()) { - AparapiBuffer::inflateInt3D(env, arg); - } else if(numDims == 3 && arg->isLong()) { - AparapiBuffer::inflateLong3D(env, arg); - } else if(numDims == 3 && arg->isFloat()) { - AparapiBuffer::inflateFloat3D(env, arg); - } else if(numDims == 3 && arg->isDouble()) { - AparapiBuffer::inflateDouble3D(env, arg); - } else { - return; - } - - deleteBuffer(arg); -} - - -void AparapiBuffer::inflateBoolean2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jboolean* array = (jboolean*)data; - /* - jbooleanArray* jArray = new jbooleanArray[lens[0]]; - jboolean** body = new jboolean*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jbooleanArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetBooleanArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseBooleanArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jbooleanArray jArray = (jbooleanArray)env->GetObjectArrayElement(buffer, i); - jboolean* body = env->GetBooleanArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseBooleanArrayElements(jArray, body, 0); - } -} - -void AparapiBuffer::inflateByte2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jbyte* array = (jbyte*)data; - /* - jbyteArray* jArray = new jbyteArray[lens[0]]; - jbyte** body = new jbyte*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jbyteArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetByteArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseByteArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jbyteArray jArray = (jbyteArray)env->GetObjectArrayElement(buffer, i); - jbyte* body = env->GetByteArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseByteArrayElements(jArray, body, 0); - } -} - -void AparapiBuffer::inflateShort2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jshort* array = (jshort*)data; - /* - jshortArray* jArray = new jshortArray[lens[0]]; - jshort** body = new jshort*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jshortArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetShortArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseShortArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jshortArray jArray = (jshortArray)env->GetObjectArrayElement(buffer, i); - jshort* body = env->GetShortArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseShortArrayElements(jArray, body, 0); - } -} - -void AparapiBuffer::inflateInt2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jint* array = (jint*)data; - /* - jintArray* jArray = new jintArray[lens[0]]; - jint** body = new jint*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jintArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetIntArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseIntArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jintArray jArray = (jintArray)env->GetObjectArrayElement(buffer, i); - jint* body = env->GetIntArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseIntArrayElements(jArray, body, 0); - } -} - -void AparapiBuffer::inflateLong2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jlong* array = (jlong*)data; - /* - jlongArray* jArray = new jlongArray[lens[0]]; - jlong** body = new jlong*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jlongArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetLongArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseLongArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jlongArray jArray = (jlongArray)env->GetObjectArrayElement(buffer, i); - jlong* body = env->GetLongArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseLongArrayElements(jArray, body, 0); - } -} - -void AparapiBuffer::inflateFloat2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jfloat* array = (jfloat*)data; - /* - jfloatArray* jArray = new jfloatArray[lens[0]]; - jfloat** body = new jfloat*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jfloatArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetFloatArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseFloatArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jfloatArray jArray = (jfloatArray)env->GetObjectArrayElement(buffer, i); - jfloat* body = env->GetFloatArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseFloatArrayElements(jArray, body, 0); - } -} - -void AparapiBuffer::inflateDouble2D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jdouble* array = (jdouble*)data; - /* - jdoubleArray* jArray = new jdoubleArray[lens[0]]; - jdouble** body = new jdouble*[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jArray[i] = (jdoubleArray)env->GetObjectArrayElement(buffer, i); - body[i] = env->GetDoubleArrayElements(jArray[i],0); - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - body[i][j] = array[i*dims[0] + j]; - } - } - - for(int i = 0; i < lens[0]; i++) { - env->ReleaseDoubleArrayElements(jArray[i], body[i], 0); - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jdoubleArray jArray = (jdoubleArray)env->GetObjectArrayElement(buffer, i); - jdouble* body = env->GetDoubleArrayElements(jArray,0); - for(int j = 0; j < lens[1]; j++) { - body[j] = array[i*dims[0] + j]; - } - env->ReleaseDoubleArrayElements(jArray, body, 0); - } -} - - -void AparapiBuffer::inflateBoolean3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jboolean* array = (jboolean*)data; - /* - jbooleanArray** jArray = new jbooleanArray*[lens[0]]; - jboolean*** body = new jboolean**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jbooleanArray[lens[0]]; - body[i] = new jboolean*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jbooleanArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetBooleanArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseBooleanArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jbooleanArray jArray = (jbooleanArray)env->GetObjectArrayElement(jrow, j); - jboolean* body = env->GetBooleanArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseBooleanArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::inflateByte3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jbyte* array = (jbyte*)data; - /* - jbyteArray** jArray = new jbyteArray*[lens[0]]; - jbyte*** body = new jbyte**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jbyteArray[lens[0]]; - body[i] = new jbyte*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jbyteArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetByteArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseByteArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jbyteArray jArray = (jbyteArray)env->GetObjectArrayElement(jrow, j); - jbyte* body = env->GetByteArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseByteArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::inflateShort3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jshort* array = (jshort*)data; - /* - jshortArray** jArray = new jshortArray*[lens[0]]; - jshort*** body = new jshort**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jshortArray[lens[0]]; - body[i] = new jshort*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jshortArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetShortArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseShortArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jshortArray jArray = (jshortArray)env->GetObjectArrayElement(jrow, j); - jshort* body = env->GetShortArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseShortArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::inflateInt3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jint* array = (jint*)data; - /* - jintArray** jArray = new jintArray*[lens[0]]; - jint*** body = new jint**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jintArray[lens[0]]; - body[i] = new jint*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jintArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetIntArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseIntArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jintArray jArray = (jintArray)env->GetObjectArrayElement(jrow, j); - jint* body = env->GetIntArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseIntArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::inflateLong3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jlong* array = (jlong*)data; - /* - jlongArray** jArray = new jlongArray*[lens[0]]; - jlong*** body = new jlong**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jlongArray[lens[0]]; - body[i] = new jlong*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jlongArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetLongArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseLongArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jlongArray jArray = (jlongArray)env->GetObjectArrayElement(jrow, j); - jlong* body = env->GetLongArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseLongArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::inflateFloat3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jfloat* array = (jfloat*)data; - /* - jfloatArray** jArray = new jfloatArray*[lens[0]]; - jfloat*** body = new jfloat**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jfloatArray[lens[0]]; - body[i] = new jfloat*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jfloatArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetFloatArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseFloatArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jfloatArray jArray = (jfloatArray)env->GetObjectArrayElement(jrow, j); - jfloat* body = env->GetFloatArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseFloatArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::inflateDouble3D(JNIEnv *env, KernelArg* arg) { - - jobjectArray buffer = (jobjectArray)javaObject; - jdouble* array = (jdouble*)data; - /* - jdoubleArray** jArray = new jdoubleArray*[lens[0]]; - jdouble*** body = new jdouble**[lens[0]]; - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - jArray[i] = new jdoubleArray[lens[0]]; - body[i] = new jdouble*[lens[0]]; - for(int j = 0; j < lens[1]; j++) { - jArray[i][j] = (jdoubleArray)env->GetObjectArrayElement(jrow, j); - body[i][j] = env->GetDoubleArrayElements(jArray[i][j],0); - } - } - - #pragma omp parallel for - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - for(int k = 0; k < lens[2]; k++) { - body[i][j][k] = array[i*dims[0] + j*dims[1] + k]; - } - } - } - - for(int i = 0; i < lens[0]; i++) { - for(int j = 0; j < lens[1]; j++) { - env->ReleaseDoubleArrayElements(jArray[i][j], body[i][j], 0); - } - delete[] jArray[i]; - delete[] body[i]; - } - delete[] jArray; - delete[] body; - */ - - for(int i = 0; i < lens[0]; i++) { - jobjectArray jrow = (jobjectArray)env->GetObjectArrayElement(buffer, i); - for(int j = 0; j < lens[1]; j++) { - jdoubleArray jArray = (jdoubleArray)env->GetObjectArrayElement(jrow, j); - jdouble* body = env->GetDoubleArrayElements(jArray,0); - for(int k = 0; k < lens[2]; k++) { - body[k] = array[i*dims[0] + j*dims[1] + k]; - } - env->ReleaseDoubleArrayElements(jArray, body, 0); - } - } -} - -void AparapiBuffer::deleteBuffer(KernelArg* arg) -{ - delete[] dims; - delete[] lens; - if(arg->isBoolean()) { - delete[] (jboolean*)data; - } else if(arg->isByte()) { - delete[] (jbyte*)data; - } else if(arg->isShort()) { - delete[] (jshort*)data; - } else if(arg->isInt()) { - delete[] (jint*)data; - } else if(arg->isLong()) { - delete[] (jlong*)data; - } else if(arg->isFloat()) { - delete[] (jfloat*)data; - } else if(arg->isDouble()) { - delete[] (jdouble*)data; - } -} diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/AparapiBuffer.h b/com.amd.aparapi.jni/src/cpp/runKernel/AparapiBuffer.h deleted file mode 100644 index b5a05d82..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/AparapiBuffer.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ - -#ifndef APARAPIBUFFER_H -#define APARAPIBUFFER_H -#include "Common.h" -#include "ProfileInfo.h" -#include "com_amd_aparapi_internal_jni_KernelRunnerJNI.h" - -class KernelArg; - -class AparapiBuffer{ - -private: - - static int isFloat(int type){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT); - } - static int isLong(int type){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG); - } - static int isInt(int type){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_INT); - } - static int isDouble(int type){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE); - } - static int isBoolean(int type){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN); - } - static int isByte(int type){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE); - } - static int isShort(int type){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT); - } - -public: - jobject javaObject; // The java array that this arg is mapped to - cl_uint numDims; // sizes of dimensions of the object (array lengths for ND arrays) - cl_uint* dims; // sizes of offsets of the object (first element offset in ND arrays) - cl_uint* lens; // sizes of dimensions of the object (array lengths for ND arrays) - jint lengthInBytes; // bytes in the array or directBuf - cl_mem mem; // the opencl buffer - void *data; // a copy of the object itself (this is what we pass to OpenCL) - cl_uint memMask; // the mask used for createBuffer - ProfileInfo read; - ProfileInfo write; - - AparapiBuffer(); - AparapiBuffer(void* _data, cl_uint* _dims, cl_uint _numDims, long _lengthInBytes, jobject _javaObject); - - void deleteBuffer(KernelArg* arg); - - static AparapiBuffer* flatten(JNIEnv *env, jobject arg, int type); - - static AparapiBuffer* flattenBoolean2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenChar2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenByte2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenShort2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenInt2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenLong2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenFloat2D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenDouble2D(JNIEnv *env, jobject arg); - - static AparapiBuffer* flattenBoolean3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenChar3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenByte3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenShort3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenInt3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenLong3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenFloat3D(JNIEnv *env, jobject arg); - static AparapiBuffer* flattenDouble3D(JNIEnv *env, jobject arg); - - void inflate(JNIEnv *env, KernelArg* arg); - - void inflateBoolean2D(JNIEnv *env, KernelArg* arg); - void inflateChar2D(JNIEnv *env, KernelArg* arg); - void inflateByte2D(JNIEnv *env, KernelArg* arg); - void inflateShort2D(JNIEnv *env, KernelArg* arg); - void inflateInt2D(JNIEnv *env, KernelArg* arg); - void inflateLong2D(JNIEnv *env, KernelArg* arg); - void inflateFloat2D(JNIEnv *env, KernelArg* arg); - void inflateDouble2D(JNIEnv *env, KernelArg* arg); - - void inflateBoolean3D(JNIEnv *env, KernelArg* arg); - void inflateChar3D(JNIEnv *env, KernelArg* arg); - void inflateByte3D(JNIEnv *env, KernelArg* arg); - void inflateShort3D(JNIEnv *env, KernelArg* arg); - void inflateInt3D(JNIEnv *env, KernelArg* arg); - void inflateLong3D(JNIEnv *env, KernelArg* arg); - void inflateFloat3D(JNIEnv *env, KernelArg* arg); - void inflateDouble3D(JNIEnv *env, KernelArg* arg); - - jobject getJavaObject(JNIEnv* env, KernelArg* arg); -}; - -#endif // ARRAYBUFFER_H diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/ArrayBuffer.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/ArrayBuffer.cpp deleted file mode 100644 index b3947681..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/ArrayBuffer.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ -#define ARRAYBUFFER_SOURCE -#include "ArrayBuffer.h" - -ArrayBuffer::ArrayBuffer(): - javaArray((jobject) 0), - length(0), - lengthInBytes(0), - mem((cl_mem) 0), - addr(NULL), - memMask((cl_uint)0), - isCopy(false), - isPinned(false){ - } - -void ArrayBuffer::unpinAbort(JNIEnv *jenv){ - jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addr,JNI_ABORT); - isPinned = JNI_FALSE; -} -void ArrayBuffer::unpinCommit(JNIEnv *jenv){ - jenv->ReleasePrimitiveArrayCritical((jarray)javaArray, addr, 0); - isPinned = JNI_FALSE; -} -void ArrayBuffer::pin(JNIEnv *jenv){ - void *ptr = addr; - addr = jenv->GetPrimitiveArrayCritical((jarray)javaArray,&isCopy); - isPinned = JNI_TRUE; -} diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/ArrayBuffer.h b/com.amd.aparapi.jni/src/cpp/runKernel/ArrayBuffer.h deleted file mode 100644 index 26f702c8..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/ArrayBuffer.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ - -#ifndef ARRAYBUFFER_H -#define ARRAYBUFFER_H -#include "Common.h" -#include "ProfileInfo.h" - -class ArrayBuffer{ - public: - jobject javaArray; // The java array that this arg is mapped to - cl_uint length; // the number of elements for arrays (used only when ARRAYLENGTH bit is set for this arg) - jint lengthInBytes; // bytes in the array or directBuf - cl_mem mem; // the opencl buffer - void *addr; // the last address where we saw this java array object - cl_uint memMask; // the mask used for createBuffer - jboolean isCopy; - jboolean isPinned; - char memSpec[128]; // The string form of the mask we used for create buffer. for debugging - ProfileInfo read; - ProfileInfo write; - - ArrayBuffer(); - void unpinAbort(JNIEnv *jenv); - void unpinCommit(JNIEnv *jenv); - void pin(JNIEnv *jenv); -}; - -#endif // ARRAYBUFFER_H diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/Config.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/Config.cpp deleted file mode 100644 index e5571193..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/Config.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ -#define CONFIG_SOURCE -#include "Config.h" - -jboolean Config::getBoolean(JNIEnv *jenv, const char *fieldName){ - jfieldID fieldID = jenv->GetStaticFieldID(configClass, fieldName, "Z"); - return(jenv->GetStaticBooleanField(configClass, fieldID)); -} - -Config::Config(JNIEnv *jenv){ - enableVerboseJNI = false; - configClass = jenv->FindClass("com/amd/aparapi/internal/jni/ConfigJNI"); - if (configClass == NULL || jenv->ExceptionCheck()) { - jenv->ExceptionDescribe(); - jenv->ExceptionClear(); - fprintf(stderr, "bummer! getting Config from instance\n"); - }else{ - enableVerboseJNI = getBoolean(jenv, "enableVerboseJNI"); - enableVerboseJNIOpenCLResourceTracking = getBoolean(jenv, "enableVerboseJNIOpenCLResourceTracking"); - enableProfiling = getBoolean(jenv, "enableProfiling"); - enableProfilingCSV = getBoolean(jenv, "enableProfilingCSV"); - } - - //fprintf(stderr, "Config::enableVerboseJNI=%s\n",enableVerboseJNI?"true":"false"); - //fprintf(stderr, "Config::enableVerboseJNIOpenCLResourceTracking=%s\n",enableVerboseJNIOpenCLResourceTracking?"true":"false"); - //fprintf(stderr, "Config::enableProfiling=%s\n",enableProfiling?"true":"false"); - //fprintf(stderr, "Config::enableProfilingCSV=%s\n",enableProfilingCSV?"true":"false"); -} - -jboolean Config::isVerbose(){ - return enableVerboseJNI; -} - -jboolean Config::isProfilingCSVEnabled(){ - return enableProfilingCSV; -} -jboolean Config::isTrackingOpenCLResources(){ - return enableVerboseJNIOpenCLResourceTracking; -} -jboolean Config::isProfilingEnabled(){ - return enableProfiling; -} diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/Config.h b/com.amd.aparapi.jni/src/cpp/runKernel/Config.h deleted file mode 100644 index 8ac19f95..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/Config.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ -#ifndef CONFIG_H -#define CONFIG_H -#include "Common.h" - -class Config{ - public: - jboolean configured; - jclass configClass; - jboolean enableVerboseJNI; - jboolean enableVerboseJNIOpenCLResourceTracking; - jboolean enableProfiling; - jboolean enableProfilingCSV; - - jboolean getBoolean(JNIEnv *jenv, const char *fieldName); - Config(JNIEnv *jenv); - jboolean isVerbose(); - jboolean isProfilingCSVEnabled(); - jboolean isTrackingOpenCLResources(); - jboolean isProfilingEnabled(); -}; - -#ifdef CONFIG_SOURCE -Config *config=NULL; -#else -extern Config *config; -#endif -#endif diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/JNIContext.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/JNIContext.cpp deleted file mode 100644 index db9a5cfa..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/JNIContext.cpp +++ /dev/null @@ -1,131 +0,0 @@ -#include "JNIContext.h" -#include "OpenCLJNI.h" -#include "List.h" - -JNIContext::JNIContext(JNIEnv *jenv, jobject _kernelObject, jobject _openCLDeviceObject, jint _flags): - kernelObject(jenv->NewGlobalRef(_kernelObject)), - kernelClass((jclass)jenv->NewGlobalRef(jenv->GetObjectClass(_kernelObject))), - openCLDeviceObject(jenv->NewGlobalRef(_openCLDeviceObject)), - flags(_flags), - profileBaseTime(0), - passes(0), - exec(NULL), - deviceType(((flags&com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)==com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)?CL_DEVICE_TYPE_GPU:CL_DEVICE_TYPE_CPU), - profileFile(NULL), - valid(JNI_FALSE){ - cl_int status = CL_SUCCESS; - jobject platformInstance = OpenCLDevice::getPlatformInstance(jenv, openCLDeviceObject); - cl_platform_id platformId = OpenCLPlatform::getPlatformId(jenv, platformInstance); - deviceId = OpenCLDevice::getDeviceId(jenv, openCLDeviceObject); - cl_device_type returnedDeviceType; - clGetDeviceInfo(deviceId, CL_DEVICE_TYPE, sizeof(returnedDeviceType), &returnedDeviceType, NULL); - //fprintf(stderr, "device[%d] CL_DEVICE_TYPE = %x\n", deviceId, returnedDeviceType); - - - cl_context_properties cps[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)platformId, 0 }; - cl_context_properties* cprops = (NULL == platformId) ? NULL : cps; - context = clCreateContextFromType( cprops, returnedDeviceType, NULL, NULL, &status); - CLException::checkCLError(status, "clCreateContextFromType()"); - if (status == CL_SUCCESS){ - valid = JNI_TRUE; - } -} - -void JNIContext::dispose(JNIEnv *jenv, Config* config) { - //fprintf(stdout, "dispose()\n"); - cl_int status = CL_SUCCESS; - jenv->DeleteGlobalRef(kernelObject); - jenv->DeleteGlobalRef(kernelClass); - if (context != 0){ - status = clReleaseContext(context); - //fprintf(stdout, "dispose context %0lx\n", context); - CLException::checkCLError(status, "clReleaseContext()"); - context = (cl_context)0; - } - if (commandQueue != 0){ - if (config->isTrackingOpenCLResources()){ - commandQueueList.remove((cl_command_queue)commandQueue, __LINE__, __FILE__); - } - status = clReleaseCommandQueue((cl_command_queue)commandQueue); - //fprintf(stdout, "dispose commandQueue %0lx\n", commandQueue); - CLException::checkCLError(status, "clReleaseCommandQueue()"); - commandQueue = (cl_command_queue)0; - } - if (program != 0){ - status = clReleaseProgram((cl_program)program); - //fprintf(stdout, "dispose program %0lx\n", program); - CLException::checkCLError(status, "clReleaseProgram()"); - program = (cl_program)0; - } - if (kernel != 0){ - status = clReleaseKernel((cl_kernel)kernel); - //fprintf(stdout, "dispose kernel %0lx\n", kernel); - CLException::checkCLError(status, "clReleaseKernel()"); - kernel = (cl_kernel)0; - } - if (argc > 0){ - for (int i=0; i< argc; i++){ - KernelArg *arg = args[i]; - if (!arg->isPrimitive()){ - if (arg->arrayBuffer != NULL){ - if (arg->arrayBuffer->mem != 0){ - if (config->isTrackingOpenCLResources()){ - memList.remove((cl_mem)arg->arrayBuffer->mem, __LINE__, __FILE__); - } - status = clReleaseMemObject((cl_mem)arg->arrayBuffer->mem); - //fprintf(stdout, "dispose arg %d %0lx\n", i, arg->arrayBuffer->mem); - CLException::checkCLError(status, "clReleaseMemObject()"); - arg->arrayBuffer->mem = (cl_mem)0; - } - if (arg->arrayBuffer->javaArray != NULL) { - jenv->DeleteWeakGlobalRef((jweak) arg->arrayBuffer->javaArray); - } - delete arg->arrayBuffer; - arg->arrayBuffer = NULL; - } - } - if (arg->name != NULL){ - free(arg->name); arg->name = NULL; - } - if (arg->javaArg != NULL ) { - jenv->DeleteGlobalRef((jobject) arg->javaArg); - } - delete arg; arg=args[i]=NULL; - } - delete[] args; args=NULL; - - // do we need to call clReleaseEvent on any of these that are still retained.... - delete[] readEvents; readEvents = NULL; - delete[] writeEvents; writeEvents = NULL; - delete[] executeEvents; executeEvents = NULL; - - if (config->isProfilingEnabled()) { - if (config->isProfilingCSVEnabled()) { - if (profileFile != NULL && profileFile != stderr) { - fclose(profileFile); - } - } - delete[] readEventArgs; readEventArgs=0; - delete[] writeEventArgs; writeEventArgs=0; - } - } - if (config->isTrackingOpenCLResources()){ - fprintf(stderr, "after dispose{ \n"); - commandQueueList.report(stderr); - memList.report(stderr); - readEventList.report(stderr); - executeEventList.report(stderr); - writeEventList.report(stderr); - fprintf(stderr, "}\n"); - } -} - -void JNIContext::unpinAll(JNIEnv* jenv) { - for (int i=0; i< argc; i++){ - KernelArg *arg = args[i]; - if (arg->isBackedByArray()) { - arg->unpin(jenv); - } - } -} - diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/JNIContext.h b/com.amd.aparapi.jni/src/cpp/runKernel/JNIContext.h deleted file mode 100644 index e22c5ff4..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/JNIContext.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef JNI_CONTEXT_H -#define JNI_CONTEXT_H - - -#include "Common.h" -#include "KernelArg.h" -#include "ProfileInfo.h" -#include "com_amd_aparapi_internal_jni_KernelRunnerJNI.h" -#include "Config.h" - -class JNIContext { -private: - jint flags; - jboolean valid; -public: - jobject kernelObject; - jobject openCLDeviceObject; - jclass kernelClass; - cl_device_id deviceId; - cl_int deviceType; - cl_context context; - cl_command_queue commandQueue; - cl_program program; - cl_kernel kernel; - jint argc; - KernelArg** args; - cl_event* executeEvents; - cl_event* readEvents; - cl_ulong profileBaseTime; - jint* readEventArgs; - cl_event* writeEvents; - jint* writeEventArgs; - jboolean firstRun; - jint passes; - ProfileInfo *exec; - FILE* profileFile; - - JNIContext(JNIEnv *jenv, jobject _kernelObject, jobject _openCLDeviceObject, jint _flags); - - static JNIContext* getJNIContext(jlong jniContextHandle){ - return((JNIContext*)jniContextHandle); - } - - jboolean isValid(){ - return(valid); - } - - jboolean isUsingGPU(){ - //I'm pretty sure that this is equivalend to: - //return flags & com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU; - return((flags&com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU)==com_amd_aparapi_internal_jni_KernelRunnerJNI_JNI_FLAG_USE_GPU?JNI_TRUE:JNI_FALSE); - } - - ~JNIContext(){ - } - - void dispose(JNIEnv *jenv, Config* config); - - /** - * Release JNI critical pinned arrays before returning to java code - */ - void unpinAll(JNIEnv* jenv); -}; - -#endif // JNI_CONTEXT_H diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/KernelArg.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/KernelArg.cpp deleted file mode 100644 index 0f401cea..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/KernelArg.cpp +++ /dev/null @@ -1,167 +0,0 @@ -#include "KernelArg.h" -#include "JNIContext.h" -#include -#include - -using std::string; -using std::cerr; -using std::endl; - -jclass KernelArg::argClazz=(jclass)0; -jfieldID KernelArg::nameFieldID=0; -jfieldID KernelArg::typeFieldID=0; -jfieldID KernelArg::javaArrayFieldID=0; -jfieldID KernelArg::sizeInBytesFieldID=0; -jfieldID KernelArg::numElementsFieldID=0; - -KernelArg::KernelArg(JNIEnv *jenv, JNIContext *jniContext, jobject argObj): - jniContext(jniContext), - argObj(argObj){ - javaArg = jenv->NewGlobalRef(argObj); // save a global ref to the java Arg Object - if (argClazz == 0){ - jclass c = jenv->GetObjectClass(argObj); - nameFieldID = JNIHelper::GetFieldID(jenv, c, "name", "Ljava/lang/String;"); - typeFieldID = JNIHelper::GetFieldID(jenv, c, "type", "I"); - javaArrayFieldID = JNIHelper::GetFieldID(jenv, c, "javaArray", "Ljava/lang/Object;"); - sizeInBytesFieldID = JNIHelper::GetFieldID(jenv, c, "sizeInBytes", "I"); - numElementsFieldID = JNIHelper::GetFieldID(jenv, c, "numElements", "I"); - argClazz = c; - } - type = jenv->GetIntField(argObj, typeFieldID); - jstring nameString = (jstring)jenv->GetObjectField(argObj, nameFieldID); - const char *nameChars = jenv->GetStringUTFChars(nameString, NULL); - name = strdup(nameChars); - jenv->ReleaseStringUTFChars(nameString, nameChars); - if (isArray()){ - arrayBuffer = new ArrayBuffer(); - } else if(isAparapiBuffer()) { - aparapiBuffer = AparapiBuffer::flatten(jenv, argObj, type); - } - } - -cl_int KernelArg::setLocalBufferArg(JNIEnv *jenv, int argIdx, int argPos, bool verbose) { - if (verbose){ - fprintf(stderr, "ISLOCAL, clSetKernelArg(jniContext->kernel, %d, %d, NULL);\n", argIdx, (int) arrayBuffer->lengthInBytes); - } - return(clSetKernelArg(jniContext->kernel, argPos, (int)arrayBuffer->lengthInBytes, NULL)); -} - -cl_int KernelArg::setLocalAparapiBufferArg(JNIEnv *jenv, int argIdx, int argPos, bool verbose) { - if (verbose){ - fprintf(stderr, "ISLOCAL, clSetKernelArg(jniContext->kernel, %d, %d, NULL);\n", argIdx, (int) aparapiBuffer->lengthInBytes); - } - return(clSetKernelArg(jniContext->kernel, argPos, (int)aparapiBuffer->lengthInBytes, NULL)); -} - -const char* KernelArg::getTypeName() { - string s = ""; - if(isStatic()) { - s += "static "; - } - if (isFloat()) { - s += "float"; - } - else if(isInt()) { - s += "int"; - } - else if(isBoolean()) { - s += "boolean"; - } - else if(isByte()) { - s += "byte"; - } - else if(isLong()) { - s += "long"; - } - else if(isDouble()) { - s += "double"; - } - return s.c_str(); -} - -void KernelArg::getPrimitiveValue(JNIEnv *jenv, jfloat* value) { - jfieldID fieldID = jenv->GetFieldID(jniContext->kernelClass, name, "F"); - *value = jenv->GetFloatField(jniContext->kernelObject, fieldID); -} -void KernelArg::getPrimitiveValue(JNIEnv *jenv, jint* value) { - jfieldID fieldID = jenv->GetFieldID(jniContext->kernelClass, name, "I"); - *value = jenv->GetIntField(jniContext->kernelObject, fieldID); -} -void KernelArg::getPrimitiveValue(JNIEnv *jenv, jboolean* value) { - jfieldID fieldID = jenv->GetFieldID(jniContext->kernelClass, name, "B"); - *value = jenv->GetByteField(jniContext->kernelObject, fieldID); -} -void KernelArg::getPrimitiveValue(JNIEnv *jenv, jbyte* value) { - jfieldID fieldID = jenv->GetFieldID(jniContext->kernelClass, name, "B"); - *value = jenv->GetByteField(jniContext->kernelObject, fieldID); -} -void KernelArg::getPrimitiveValue(JNIEnv *jenv, jlong* value) { - jfieldID fieldID = jenv->GetFieldID(jniContext->kernelClass, name, "J"); - *value = jenv->GetLongField(jniContext->kernelObject, fieldID); -} -void KernelArg::getPrimitiveValue(JNIEnv *jenv, jdouble* value) { - jfieldID fieldID = jenv->GetFieldID(jniContext->kernelClass, name, "D"); - *value = jenv->GetDoubleField(jniContext->kernelObject, fieldID); -} - -void KernelArg::getStaticPrimitiveValue(JNIEnv *jenv, jfloat* value) { - jfieldID fieldID = jenv->GetStaticFieldID(jniContext->kernelClass, name, "F"); - *value = jenv->GetStaticFloatField(jniContext->kernelClass, fieldID); -} -void KernelArg::getStaticPrimitiveValue(JNIEnv *jenv, jint* value) { - jfieldID fieldID = jenv->GetStaticFieldID(jniContext->kernelClass, name, "I"); - *value = jenv->GetStaticIntField(jniContext->kernelClass, fieldID); -} -void KernelArg::getStaticPrimitiveValue(JNIEnv *jenv, jboolean* value) { - jfieldID fieldID = jenv->GetStaticFieldID(jniContext->kernelClass, name, "Z"); - *value = jenv->GetStaticBooleanField(jniContext->kernelClass, fieldID); -} -void KernelArg::getStaticPrimitiveValue(JNIEnv *jenv, jbyte* value) { - jfieldID fieldID = jenv->GetStaticFieldID(jniContext->kernelClass, name, "B"); - *value = jenv->GetStaticByteField(jniContext->kernelClass, fieldID); -} -void KernelArg::getStaticPrimitiveValue(JNIEnv *jenv, jlong* value) { - jfieldID fieldID = jenv->GetStaticFieldID(jniContext->kernelClass, name, "J"); - *value = jenv->GetStaticLongField(jniContext->kernelClass, fieldID); -} -void KernelArg::getStaticPrimitiveValue(JNIEnv *jenv, jdouble* value) { - jfieldID fieldID = jenv->GetStaticFieldID(jniContext->kernelClass, name, "D"); - *value = jenv->GetStaticDoubleField(jniContext->kernelClass, fieldID); -} - -cl_int KernelArg::setPrimitiveArg(JNIEnv *jenv, int argIdx, int argPos, bool verbose){ - cl_int status = CL_SUCCESS; - if (isFloat()) { - jfloat f; - getPrimitive(jenv, argIdx, argPos, verbose, &f); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(f), &f); - } - else if (isInt()) { - jint i; - getPrimitive(jenv, argIdx, argPos, verbose, &i); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(i), &i); - } - else if (isBoolean()) { - jboolean z; - getPrimitive(jenv, argIdx, argPos, verbose, &z); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(z), &z); - } - else if (isByte()) { - jbyte b; - getPrimitive(jenv, argIdx, argPos, verbose, &b); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(b), &b); - } - else if (isLong()) { - jlong l; - getPrimitive(jenv, argIdx, argPos, verbose, &l); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(l), &l); - } - else if (isDouble()) { - jdouble d; - getPrimitive(jenv, argIdx, argPos, verbose, &d); - status = clSetKernelArg(jniContext->kernel, argPos, sizeof(d), &d); - } - return status; -} - - diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/KernelArg.h b/com.amd.aparapi.jni/src/cpp/runKernel/KernelArg.h deleted file mode 100644 index a54e411e..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/KernelArg.h +++ /dev/null @@ -1,199 +0,0 @@ - -#ifndef KERNEL_ARG_H -#define KERNEL_ARG_H - -#include "Common.h" -#include "JNIHelper.h" -#include "ArrayBuffer.h" -#include "AparapiBuffer.h" -#include "com_amd_aparapi_internal_jni_KernelRunnerJNI.h" -#include "Config.h" -#include - -#ifdef _WIN32 -#define strdup _strdup -#endif - -class JNIContext; - -class KernelArg{ - private: - static jclass argClazz; - static jfieldID nameFieldID; - static jfieldID typeFieldID; - static jfieldID sizeInBytesFieldID; - static jfieldID numElementsFieldID; - - const char* getTypeName(); - - //all of these use JNIContext so they can't be inlined - - //get the value of a primitive arguement - void getPrimitiveValue(JNIEnv *jenv, jfloat *value); - void getPrimitiveValue(JNIEnv *jenv, jint *value); - void getPrimitiveValue(JNIEnv *jenv, jboolean *value); - void getPrimitiveValue(JNIEnv *jenv, jbyte *value); - void getPrimitiveValue(JNIEnv *jenv, jlong *value); - void getPrimitiveValue(JNIEnv *jenv, jdouble *value); - - //get the value of a static primitive arguement - void getStaticPrimitiveValue(JNIEnv *jenv, jfloat *value); - void getStaticPrimitiveValue(JNIEnv *jenv, jint *value); - void getStaticPrimitiveValue(JNIEnv *jenv, jboolean *value); - void getStaticPrimitiveValue(JNIEnv *jenv, jbyte *value); - void getStaticPrimitiveValue(JNIEnv *jenv, jlong *value); - void getStaticPrimitiveValue(JNIEnv *jenv, jdouble *value); - - template - void getPrimitive(JNIEnv *jenv, int argIdx, int argPos, bool verbose, T* value) { - if(isStatic()) { - getStaticPrimitiveValue(jenv, value); - } - else { - getPrimitiveValue(jenv, value); - } - if (verbose) { - std::cerr << "clSetKernelArg " << getTypeName() << " '" << name - << " ' index=" << argIdx << " pos=" << argPos - << " value=" << *value << std::endl; - } - } - - - public: - static jfieldID javaArrayFieldID; - public: - JNIContext *jniContext; - jobject argObj; // the Java KernelRunner.KernelArg object that we are mirroring. - jobject javaArg; // global reference to the corresponding java KernelArg object we grabbed our own global reference so that the object won't be collected until we dispose! - char *name; // used for debugging printfs - jint type; // a bit mask determining the type of this arg - - ArrayBuffer *arrayBuffer; - AparapiBuffer *aparapiBuffer; - - // Uses JNIContext so cant inline here see below - KernelArg(JNIEnv *jenv, JNIContext *jniContext, jobject argObj); - - ~KernelArg(){ - } - - void unpinAbort(JNIEnv *jenv){ - arrayBuffer->unpinAbort(jenv); - } - void unpinCommit(JNIEnv *jenv){ - arrayBuffer->unpinCommit(jenv); - } - void unpin(JNIEnv *jenv){ - //if (value.ref.isPinned == JNI_FALSE){ - // fprintf(stdout, "why are we unpinning buffer %s! isPinned = JNI_TRUE\n", name); - //} - if (isMutableByKernel()){ - // we only need to commit if the buffer has been written to - // we use mode=0 in that case (rather than JNI_COMMIT) because that frees any copy buffer if it exists - // in most cases this array will have been pinned so this will not be an issue - unpinCommit(jenv); - }else { - // fast path for a read_only buffer - unpinAbort(jenv); - } - } - void pin(JNIEnv *jenv){ - arrayBuffer->pin(jenv); - } - - int isArray(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAY); - } - int isReadByKernel(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_READ); - } - int isMutableByKernel(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_WRITE); - } - int isExplicit(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT); - } - int usesArrayLength(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_ARRAYLENGTH); - } - int isExplicitWrite(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE); - } - int isImplicit(){ - return(!isExplicit()); - } - int isPrimitive(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_PRIMITIVE); - } - int isGlobal(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_GLOBAL); - } - int isFloat(){ - return(type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_FLOAT); - } - int isLong(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LONG); - } - int isInt(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_INT); - } - int isDouble(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_DOUBLE); - } - int isBoolean(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BOOLEAN); - } - int isByte(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_BYTE); - } - int isShort(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_SHORT); - } - int isLocal(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_LOCAL); - } - int isStatic(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_STATIC); - } - int isConstant(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_CONSTANT); - } - int isAparapiBuffer(){ - return (type&com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_APARAPI_BUFFER); - } - int isBackedByArray(){ - return ( (isArray() && (isGlobal() || isConstant()))); - } - int needToEnqueueRead(){ - return(((isArray() && isGlobal()) || ((isAparapiBuffer()&&isGlobal()))) && (isImplicit()&&isMutableByKernel())); - } - int needToEnqueueWrite(){ - return ((isImplicit()&&isReadByKernel())||(isExplicit()&&isExplicitWrite())); - } - void syncType(JNIEnv* jenv){ - type = jenv->GetIntField(javaArg, typeFieldID); - } - void syncSizeInBytes(JNIEnv* jenv){ - arrayBuffer->lengthInBytes = jenv->GetIntField(javaArg, sizeInBytesFieldID); - } - void syncJavaArrayLength(JNIEnv* jenv){ - arrayBuffer->length = jenv->GetIntField(javaArg, numElementsFieldID); - } - void clearExplicitBufferBit(JNIEnv* jenv){ - type &= ~com_amd_aparapi_internal_jni_KernelRunnerJNI_ARG_EXPLICIT_WRITE; - jenv->SetIntField(javaArg, typeFieldID,type ); - } - - // Uses JNIContext so can't inline here we below. - void syncValue(JNIEnv *jenv); - - // Uses JNIContext so can't inline here we below. - cl_int setLocalBufferArg(JNIEnv *jenv, int argIdx, int argPos, bool verbose); - cl_int setLocalAparapiBufferArg(JNIEnv *jenv, int argIdx, int argPos, bool verbose); - // Uses JNIContext so can't inline here we below. - cl_int setPrimitiveArg(JNIEnv *jenv, int argIdx, int argPos, bool verbose); -}; - - -#endif // KERNEL_ARG_H diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/List.h b/com.amd.aparapi.jni/src/cpp/runKernel/List.h deleted file mode 100644 index cd2d44e6..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/List.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security�s website at http://www.bis.doc.gov/. - */ - -#ifndef APARAPI_LIST_H -#define APARAPI_LIST_H - -template class List; // forward - -template class Ref{ - private: - T value; - int line; - const char *fileName; - Ref *next; - friend class List; - public: - Ref(T _value, int _line, const char* _fileName); -}; - -template class List{ - private: - const char *name; - Ref *head; - int count; - public: - List(const char *_name); - void add(T _value, int _line, const char *_fileName); - void remove(T _value, int _line, const char *_fileName); - void report(FILE *stream); -}; - -template Ref::Ref(T _value, int _line, const char* _fileName): - value(_value), - line(_line), - fileName(_fileName), - next(NULL){ - } - -template List::List(const char *_name): - head(NULL), - count(0), - name(_name){ - } - -template void List::add(T _value, int _line, const char *_fileName){ - Ref *handle = new Ref(_value, _line, _fileName); - handle->next = head; - head = handle; - count++; -} - -template void List::remove(T _value, int _line, const char *_fileName){ - for (Ref *ptr = head, *last=NULL; ptr != NULL; last=ptr, ptr = ptr->next){ - if (ptr->value == _value){ - if (last == NULL){ // head - head = ptr->next; - }else{ // !head - last->next = ptr->next; - } - delete ptr; - count--; - return; - } - } - fprintf(stderr, "FILE %s LINE %d failed to find %s to remove %0lx\n", _fileName, _line, name, (unsigned long)_value); -} - -template void List::report(FILE *stream){ - if (head != NULL){ - fprintf(stream, "Resource report %d resources of type %s still in play ", count, name); - for (Ref *ptr = head; ptr != NULL; ptr = ptr->next){ - fprintf(stream, " %0lx(%d)", (unsigned long)ptr->value, ptr->line); - } - fprintf(stream, "\n"); - } -} - - -#ifdef CLHELPER_SOURCE -List commandQueueList("cl_command_queue"); -List memList("cl_mem"); -List readEventList("cl_event (read)"); -List executeEventList("cl_event (exec)"); -List writeEventList("cl_event (write)"); -#else -extern List commandQueueList; -extern List memList; -extern List readEventList; -extern List executeEventList; -extern List writeEventList; -#endif - -#endif // APARAPI_LIST_H - diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/ProfileInfo.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/ProfileInfo.cpp deleted file mode 100644 index 11c77eae..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/ProfileInfo.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ -#define PROFILEINFO_SOURCE -#include "ProfileInfo.h" - -ProfileInfo::ProfileInfo(): - valid(false), - type(-1), //-1 unknown, 0 write, 1 execute, 2 read - name(NULL), - queued((cl_ulong)0L), - submit((cl_ulong)0L), - start((cl_ulong)0L), - end((cl_ulong)0L) { -} - -jobject ProfileInfo::createProfileInfoInstance(JNIEnv *jenv){ - jobject profileInstance = JNIHelper::createInstance(jenv, ProfileInfoClass , ArgsVoidReturn(StringClassArg IntArg LongArg LongArg LongArg LongArg), - ((jstring)(name==NULL?NULL:jenv->NewStringUTF(name))), - ((jint)type), - ((jlong)start), - ((jlong)end), - ((jlong)queued), - ((jlong)submit)); - return(profileInstance); -} - diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/ProfileInfo.h b/com.amd.aparapi.jni/src/cpp/runKernel/ProfileInfo.h deleted file mode 100644 index 7b58267f..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/ProfileInfo.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (c) 2010-2011, Advanced Micro Devices, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the - following conditions are met: - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following - disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided with the distribution. - - Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export - laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 - through 774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of - the EAR, you hereby certify that, except pursuant to a license granted by the United States Department of Commerce - Bureau of Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export - Administration Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in - Country Groups D:1, E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) - export to Country Groups D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced - direct product is subject to national security controls as identified on the Commerce Control List (currently - found in Supplement 1 to Part 774 of EAR). For the most current Country Group listings, or for additional - information about the EAR or your obligations under those regulations, please refer to the U.S. Bureau of Industry - and Security?s website at http://www.bis.doc.gov/. - */ -#ifndef PROFILEINFO_H -#define PROFILEINFO_H -#include "Common.h" -#include "JNIHelper.h" - -class ProfileInfo{ - public: - jboolean valid; - jint type; //0 write, 1 execute, 2 read - char *name; - cl_ulong queued; - cl_ulong submit; - cl_ulong start; - cl_ulong end; - ProfileInfo(); - jobject createProfileInfoInstance(JNIEnv *jenv); -}; - -#endif diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/Range.cpp b/com.amd.aparapi.jni/src/cpp/runKernel/Range.cpp deleted file mode 100644 index 24974fac..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/Range.cpp +++ /dev/null @@ -1,74 +0,0 @@ - -#include "Range.h" - -jclass Range::rangeClazz = (jclass)0; -jfieldID Range::globalSize_0_FieldID=0; -jfieldID Range::globalSize_1_FieldID=0; -jfieldID Range::globalSize_2_FieldID=0; -jfieldID Range::localSize_0_FieldID=0; -jfieldID Range::localSize_1_FieldID=0; -jfieldID Range::localSize_2_FieldID=0; -jfieldID Range::dimsFieldID=0; -jfieldID Range::localIsDerivedFieldID=0; - -Range::Range(JNIEnv *jenv, jobject range): - range(range), - dims(0), - offsets(NULL), - globalDims(NULL), - localDims(NULL){ - if (rangeClazz ==NULL){ - jclass rangeClazz = jenv->GetObjectClass(range); - globalSize_0_FieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "globalSize_0", "I"); - globalSize_1_FieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "globalSize_1", "I"); - globalSize_2_FieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "globalSize_2", "I"); - localSize_0_FieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "localSize_0", "I"); - localSize_1_FieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "localSize_1", "I"); - localSize_2_FieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "localSize_2", "I"); - dimsFieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "dims", "I"); - localIsDerivedFieldID = JNIHelper::GetFieldID(jenv, rangeClazz, "localIsDerived", "Z"); - } - dims = jenv->GetIntField(range, dimsFieldID); - localIsDerived = jenv->GetBooleanField(range, localIsDerivedFieldID); - if (dims >0){ - //fprintf(stderr, "native range dims == %d\n", dims); - offsets = new size_t[dims]; - globalDims = new size_t[dims]; - localDims = new size_t[dims]; - offsets[0]= 0; - localDims[0]= jenv->GetIntField(range, localSize_0_FieldID); - //fprintf(stderr, "native range localSize_0 == %d\n", localDims[0]); - globalDims[0]= jenv->GetIntField(range, globalSize_0_FieldID); - //fprintf(stderr, "native range globalSize_0 == %d\n", globalDims[0]); - if (dims >1){ - offsets[1]= 0; - localDims[1]= jenv->GetIntField(range, localSize_1_FieldID); - //fprintf(stderr, "native range localSize_1 == %d\n", localDims[1]); - globalDims[1]= jenv->GetIntField(range, globalSize_1_FieldID); - //fprintf(stderr, "native range globalSize_1 == %d\n", globalDims[1]); - if (dims >2){ - offsets[2]= 0; - localDims[2]= jenv->GetIntField(range, localSize_2_FieldID); - //fprintf(stderr, "native range localSize_2 == %d\n", localDims[2]); - globalDims[2]= jenv->GetIntField(range, globalSize_2_FieldID); - //fprintf(stderr, "native range globalSize_2 == %d\n", globalDims[2]); - } - } - - } -} - - -Range::~Range(){ - if (offsets!= NULL){ - delete offsets; - } - if (globalDims!= NULL){ - delete globalDims; - } - if (localDims!= NULL){ - delete localDims; - } -} - - diff --git a/com.amd.aparapi.jni/src/cpp/runKernel/Range.h b/com.amd.aparapi.jni/src/cpp/runKernel/Range.h deleted file mode 100644 index 548549b8..00000000 --- a/com.amd.aparapi.jni/src/cpp/runKernel/Range.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef RANGE_H -#define RANGE_H - -#include "Common.h" -#include "JNIHelper.h" - -class Range{ - public: - static jclass rangeClazz; - static jfieldID globalSize_0_FieldID; - static jfieldID globalSize_1_FieldID; - static jfieldID globalSize_2_FieldID; - static jfieldID localSize_0_FieldID; - static jfieldID localSize_1_FieldID; - static jfieldID localSize_2_FieldID; - static jfieldID dimsFieldID; - static jfieldID localIsDerivedFieldID; - jobject range; - cl_int dims; - size_t *offsets; - size_t *globalDims; - size_t *localDims; - jboolean localIsDerived; - Range(JNIEnv *jenv, jobject range); - ~Range(); -}; - -#endif // RANGE_H diff --git a/com.amd.aparapi/.classpath b/com.amd.aparapi/.classpath deleted file mode 100644 index f8f3492a..00000000 --- a/com.amd.aparapi/.classpath +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/com.amd.aparapi/.project b/com.amd.aparapi/.project deleted file mode 100644 index 54ce0fda..00000000 --- a/com.amd.aparapi/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - com.amd.aparapi - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/com.amd.aparapi/build.xml b/com.amd.aparapi/build.xml deleted file mode 100644 index 6dad1277..00000000 --- a/com.amd.aparapi/build.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - OS Name: ${os.name} - OS Version: ${os.version} - OS Arch: ${os.arch} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      - -
      -
      -
      -
      - -
      diff --git a/com.amd.aparapi/doc/api/allclasses-frame.html b/com.amd.aparapi/doc/api/allclasses-frame.html deleted file mode 100644 index f259c212..00000000 --- a/com.amd.aparapi/doc/api/allclasses-frame.html +++ /dev/null @@ -1,377 +0,0 @@ - - - - - -All Classes - - - - -

      All Classes

      -
      - -
      - - diff --git a/com.amd.aparapi/doc/api/allclasses-noframe.html b/com.amd.aparapi/doc/api/allclasses-noframe.html deleted file mode 100644 index 25b7217f..00000000 --- a/com.amd.aparapi/doc/api/allclasses-noframe.html +++ /dev/null @@ -1,377 +0,0 @@ - - - - - -All Classes - - - - -

      All Classes

      -
      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Config.InstructionListener.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Config.InstructionListener.html deleted file mode 100644 index b2e799ac..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Config.InstructionListener.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -Config.InstructionListener - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Interface Config.InstructionListener

      -
      -
      -
      -
        -
      • -
        -
        All Known Implementing Classes:
        -
        InstructionViewer
        -
        -
        -
        Enclosing class:
        -
        Config
        -
        -
        -
        -
        public static interface Config.InstructionListener
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voidshowAndTell(java.lang.String message, - Instruction _start, - Instruction _instruction) 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            showAndTell

            -
            void showAndTell(java.lang.String message,
            -               Instruction _start,
            -               Instruction _instruction)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Config.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Config.html deleted file mode 100644 index 0d74bfc8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Config.html +++ /dev/null @@ -1,660 +0,0 @@ - - - - - -Config - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Class Config

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class Config
        -extends ConfigJNI
        -
        A central location for holding all runtime configurable properties as well as logging configuration. - - Ideally we will find all properties used by Aparapi here. Please consider updating this class if you wish - to add new properties which control Aparapis behavior.
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            disableUnsafe

            -
            public static final boolean disableUnsafe
            -
            Disable Unsafe
            -
          • -
          - - - -
            -
          • -

            executionMode

            -
            public static final java.lang.String executionMode
            -
            Allows the user to request a specific Kernel.EXECUTION_MODE enum value for all Kernels. - - Usage -Dcom.amd.aparapi.executionMode={SEQ|JTP|CPU|GPU}
            -
            See Also:
            Kernel.EXECUTION_MODE
            -
          • -
          - - - -
            -
          • -

            enableExecutionModeReporting

            -
            public static final boolean enableExecutionModeReporting
            -
            Allows the user to request that the execution mode of each kernel invocation be reported to stdout. - - Usage -Dcom.amd.aparapi.enableExecutionModeReporting={true|false}
            -
          • -
          - - - -
            -
          • -

            enableShowGeneratedOpenCL

            -
            public static final boolean enableShowGeneratedOpenCL
            -
            Allows the user to request that generated OpenCL code is dumped to standard out. - - Usage -Dcom.amd.aparapi.enableShowGeneratedOpenCL={true|false}
            -
          • -
          - - - -
            -
          • -

            enableAtomic32

            -
            public static final boolean enableAtomic32
            -
          • -
          - - - -
            -
          • -

            enableAtomic64

            -
            public static final boolean enableAtomic64
            -
          • -
          - - - -
            -
          • -

            enableByteWrites

            -
            public static final boolean enableByteWrites
            -
          • -
          - - - -
            -
          • -

            enableDoubles

            -
            public static final boolean enableDoubles
            -
          • -
          - - - -
            -
          • -

            verboseComparitor

            -
            public static final boolean verboseComparitor
            -
          • -
          - - - -
            -
          • -

            dumpFlags

            -
            public static final boolean dumpFlags
            -
          • -
          - - - -
            -
          • -

            enablePUTFIELD

            -
            public static final boolean enablePUTFIELD
            -
          • -
          - - - -
            -
          • -

            enableARETURN

            -
            public static final boolean enableARETURN
            -
          • -
          - - - -
            -
          • -

            enablePUTSTATIC

            -
            public static final boolean enablePUTSTATIC
            -
          • -
          - - - -
            -
          • -

            enableGETSTATIC

            -
            public static final boolean enableGETSTATIC
            -
          • -
          - - - -
            -
          • -

            enableINVOKEINTERFACE

            -
            public static final boolean enableINVOKEINTERFACE
            -
          • -
          - - - -
            -
          • -

            enableMONITOR

            -
            public static final boolean enableMONITOR
            -
          • -
          - - - -
            -
          • -

            enableNEW

            -
            public static final boolean enableNEW
            -
          • -
          - - - -
            -
          • -

            enableATHROW

            -
            public static final boolean enableATHROW
            -
          • -
          - - - -
            -
          • -

            enableMETHODARRAYPASSING

            -
            public static final boolean enableMETHODARRAYPASSING
            -
          • -
          - - - -
            -
          • -

            enableARRAYLENGTH

            -
            public static final boolean enableARRAYLENGTH
            -
          • -
          - - - -
            -
          • -

            enableSWITCH

            -
            public static final boolean enableSWITCH
            -
          • -
          - - - -
            -
          • -

            enableShowFakeLocalVariableTable

            -
            public static boolean enableShowFakeLocalVariableTable
            -
          • -
          - - - -
            -
          • -

            enableInstructionDecodeViewer

            -
            public static final boolean enableInstructionDecodeViewer
            -
          • -
          - - - -
            -
          • -

            instructionListenerClassName

            -
            public static java.lang.String instructionListenerClassName
            -
          • -
          - - - - -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Config

            -
            public Config()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getLoggerName

            -
            public static java.lang.String getLoggerName()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Constant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Constant.html deleted file mode 100644 index 90401254..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Constant.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - -Kernel.Constant - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Annotation Type Kernel.Constant

      -
      -
      -
      -
        -
      • -
        -
        -
        @Retention(value=RUNTIME)
        -public static @interface Kernel.Constant
        -
        We can use this Annotation to 'tag' intended constant buffers. - - So we can either annotate the buffer -
        
        -  @Constant int[] buffer = new int[1024];
        -  
        - Or use a special suffix -
        
        -  int[] buffer_$constant$ = new int[1024];
        -  
        -
        See Also:
        LOCAL_SUFFIX
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.EXECUTION_MODE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.EXECUTION_MODE.html deleted file mode 100644 index 1b008329..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.EXECUTION_MODE.html +++ /dev/null @@ -1,436 +0,0 @@ - - - - - -Kernel.EXECUTION_MODE - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Enum Kernel.EXECUTION_MODE

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.io.Serializable, java.lang.Comparable<Kernel.EXECUTION_MODE>
        -
        -
        -
        Enclosing class:
        -
        Kernel
        -
        -
        -
        -
        public static enum Kernel.EXECUTION_MODE
        -extends java.lang.Enum<Kernel.EXECUTION_MODE>
        -
        The execution mode ENUM enumerates the possible modes of executing a kernel. - One can request a mode of execution using the values below, and query a kernel after it first executes to - determine how it executed. - -

        - Aparapi supports 4 execution modes. -

          - - - - - - -
          Enum valueExecution
          GPUExecute using OpenCL on first available GPU device
          CPUExecute using OpenCL on first available CPU device
          JTPExecute using a Java Thread Pool (one thread spawned per available core)
          SEQExecute using a single loop. This is useful for debugging but will be less - performant than the other modes
          -
        -

        - To request that a kernel is executed in a specific mode, call Kernel.setExecutionMode(EXECUTION_MODE) before the - kernel first executes. -

        -

        -     int[] values = new int[1024];
        -     // fill values array
        -     SquareKernel kernel = new SquareKernel(values);
        -     kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
        -     kernel.execute(values.length);
        - 
        -

        - Alternatively, the property com.amd.aparapi.executionMode can be set to one of JTP,GPU,CPU,SEQ - when an application is launched. -

        -    java -classpath ....;aparapi.jar -Dcom.amd.aparapi.executionMode=GPU MyApplication  
        - 

        - Generally setting the execution mode is not recommended (it is best to let Aparapi decide automatically) but the option - provides a way to compare a kernel's performance under multiple execution modes.

        -
        Version:
        -
        Alpha, 21/09/2010
        -
        Author:
        -
        gfrost AMD Javalabs
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - - - - - - - -
          Enum Constants 
          Enum Constant and Description
          CPU -
          The value representing execution on a CPU device via OpenCL.
          -
          GPU -
          The value representing execution on a GPU device via OpenCL.
          -
          JTP -
          The value representing execution on a Java Thread Pool.
          -
          NONE -
          A dummy value to indicate an unknown state.
          -
          SEQ -
          The value representing execution sequentially in a single loop.
          -
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          booleanisOpenCL() 
          static Kernel.EXECUTION_MODEvalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static Kernel.EXECUTION_MODE[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Enum Constant Detail

          - - - -
            -
          • -

            NONE

            -
            public static final Kernel.EXECUTION_MODE NONE
            -
            A dummy value to indicate an unknown state.
            -
          • -
          - - - -
            -
          • -

            GPU

            -
            public static final Kernel.EXECUTION_MODE GPU
            -
            The value representing execution on a GPU device via OpenCL.
            -
          • -
          - - - -
            -
          • -

            CPU

            -
            public static final Kernel.EXECUTION_MODE CPU
            -
            The value representing execution on a CPU device via OpenCL. -

            - Note not all OpenCL implementations support OpenCL compute on the CPU.

            -
          • -
          - - - -
            -
          • -

            JTP

            -
            public static final Kernel.EXECUTION_MODE JTP
            -
            The value representing execution on a Java Thread Pool. -

            - By default one Java thread is started for each available core and each core will execute globalSize/cores work items. - This creates a total of globalSize%cores threads to complete the work. - Choose suitable values for globalSize to minimize the number of threads that are spawned.

            -
          • -
          - - - -
            -
          • -

            SEQ

            -
            public static final Kernel.EXECUTION_MODE SEQ
            -
            The value representing execution sequentially in a single loop. -

            - This is meant to be used for debugging a kernel.

            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            values

            -
            public static Kernel.EXECUTION_MODE[] values()
            -
            Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
            -for (Kernel.EXECUTION_MODE c : Kernel.EXECUTION_MODE.values())
            -    System.out.println(c);
            -
            -
            Returns:
            an array containing the constants of this enum type, in -the order they are declared
            -
          • -
          - - - -
            -
          • -

            valueOf

            -
            public static Kernel.EXECUTION_MODE valueOf(java.lang.String name)
            -
            Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
            -
            Parameters:
            name - the name of the enum constant to be returned.
            -
            Returns:
            the enum constant with the specified name
            -
            Throws:
            -
            java.lang.IllegalArgumentException - if this enum type has no constant -with the specified name
            -
            java.lang.NullPointerException - if the argument is null
            -
          • -
          - - - -
            -
          • -

            isOpenCL

            -
            public boolean isOpenCL()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Entry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Entry.html deleted file mode 100644 index 84cee553..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Entry.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -Kernel.Entry - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Class Kernel.Entry

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.Kernel.Entry
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        Kernel
        -
        -
        -
        -
        public abstract class Kernel.Entry
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          Kernel.Entry() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          Kernelexecute(Range _range) 
          abstract voidrun() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Kernel.Entry

            -
            public Kernel.Entry()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            run

            -
            public abstract void run()
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(Range _range)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.KernelState.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.KernelState.html deleted file mode 100644 index a895e035..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.KernelState.html +++ /dev/null @@ -1,440 +0,0 @@ - - - - - -Kernel.KernelState - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Class Kernel.KernelState

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.Kernel.KernelState
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        Kernel
        -
        -
        -
        -
        public final class Kernel.KernelState
        -extends java.lang.Object
        -
        This class is for internal Kernel state management

        - NOT INTENDED FOR USE BY USERS

        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          int[]getGlobalIds() 
          int[]getGroupIds() 
          java.util.concurrent.CyclicBarriergetLocalBarrier() 
          int[]getLocalIds() 
          intgetPassId() 
          RangegetRange() 
          voidsetGlobalId(int _index, - int value) -
          Set a specific index value
          -
          voidsetGlobalIds(int[] globalIds) 
          voidsetGroupId(int _index, - int value) -
          Set a specific index value
          -
          voidsetGroupIds(int[] groupIds) 
          voidsetLocalBarrier(java.util.concurrent.CyclicBarrier localBarrier) 
          voidsetLocalId(int _index, - int value) -
          Set a specific index value
          -
          voidsetLocalIds(int[] localIds) 
          voidsetPassId(int passId) 
          voidsetRange(Range range) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getGlobalIds

            -
            public int[] getGlobalIds()
            -
            Returns:
            the globalIds
            -
          • -
          - - - -
            -
          • -

            setGlobalIds

            -
            public void setGlobalIds(int[] globalIds)
            -
            Parameters:
            globalIds - the globalIds to set
            -
          • -
          - - - -
            -
          • -

            setGlobalId

            -
            public void setGlobalId(int _index,
            -               int value)
            -
            Set a specific index value
            -
            Parameters:
            _index -
            value -
            -
          • -
          - - - -
            -
          • -

            getLocalIds

            -
            public int[] getLocalIds()
            -
            Returns:
            the localIds
            -
          • -
          - - - -
            -
          • -

            setLocalIds

            -
            public void setLocalIds(int[] localIds)
            -
            Parameters:
            localIds - the localIds to set
            -
          • -
          - - - -
            -
          • -

            setLocalId

            -
            public void setLocalId(int _index,
            -              int value)
            -
            Set a specific index value
            -
            Parameters:
            _index -
            value -
            -
          • -
          - - - -
            -
          • -

            getGroupIds

            -
            public int[] getGroupIds()
            -
            Returns:
            the groupIds
            -
          • -
          - - - -
            -
          • -

            setGroupIds

            -
            public void setGroupIds(int[] groupIds)
            -
            Parameters:
            groupIds - the groupIds to set
            -
          • -
          - - - -
            -
          • -

            setGroupId

            -
            public void setGroupId(int _index,
            -              int value)
            -
            Set a specific index value
            -
            Parameters:
            _index -
            value -
            -
          • -
          - - - -
            -
          • -

            getRange

            -
            public Range getRange()
            -
            Returns:
            the range
            -
          • -
          - - - -
            -
          • -

            setRange

            -
            public void setRange(Range range)
            -
            Parameters:
            range - the range to set
            -
          • -
          - - - -
            -
          • -

            getPassId

            -
            public int getPassId()
            -
            Returns:
            the passId
            -
          • -
          - - - -
            -
          • -

            setPassId

            -
            public void setPassId(int passId)
            -
            Parameters:
            passId - the passId to set
            -
          • -
          - - - -
            -
          • -

            getLocalBarrier

            -
            public java.util.concurrent.CyclicBarrier getLocalBarrier()
            -
            Returns:
            the localBarrier
            -
          • -
          - - - -
            -
          • -

            setLocalBarrier

            -
            public void setLocalBarrier(java.util.concurrent.CyclicBarrier localBarrier)
            -
            Parameters:
            localBarrier - the localBarrier to set
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Local.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Local.html deleted file mode 100644 index 4295835e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.Local.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - -Kernel.Local - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Annotation Type Kernel.Local

      -
      -
      -
      -
        -
      • -
        -
        -
        @Retention(value=RUNTIME)
        -public static @interface Kernel.Local
        -
        We can use this Annotation to 'tag' intended local buffers. - - So we can either annotate the buffer -
        
        -  @Local int[] buffer = new int[1024];
        -  
        - Or use a special suffix -
        
        -  int[] buffer_$local$ = new int[1024];
        -  
        -
        See Also:
        LOCAL_SUFFIX
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.html deleted file mode 100644 index ca5f2dc8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Kernel.html +++ /dev/null @@ -1,1225 +0,0 @@ - - - - - -Kernel - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Class Kernel

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.Kernel
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.lang.Cloneable
        -
        -
        -
        -
        public abstract class Kernel
        -extends java.lang.Object
        -implements java.lang.Cloneable
        -
        A kernel encapsulates a data parallel algorithm that will execute either on a GPU - (through conversion to OpenCL) or on a CPU via a Java Thread Pool. -

        - To write a new kernel, a developer extends the Kernel class and overrides the Kernel.run() method. - To execute this kernel, the developer creates a new instance of it and calls Kernel.execute(int globalSize) with a suitable 'global size'. At runtime - Aparapi will attempt to convert the Kernel.run() method (and any method called directly or indirectly - by Kernel.run()) into OpenCL for execution on GPU devices made available via the OpenCL platform. -

        - Note that Kernel.run() is not called directly. Instead, - the Kernel.execute(int globalSize) method will cause the overridden Kernel.run() - method to be invoked once for each value in the range 0...globalSize. -

        - On the first call to Kernel.execute(int _globalSize), Aparapi will determine the EXECUTION_MODE of the kernel. - This decision is made dynamically based on two factors: -

          -
        1. Whether OpenCL is available (appropriate drivers are installed and the OpenCL and Aparapi dynamic libraries are included on the system path).
        2. -
        3. Whether the bytecode of the run() method (and every method that can be called directly or indirectly from the run() method) - can be converted into OpenCL.
        4. -
        -

        - Below is an example Kernel that calculates the square of a set of input values. -

        -

        -     class SquareKernel extends Kernel{
        -         private int values[];
        -         private int squares[];
        -         public SquareKernel(int values[]){
        -            this.values = values;
        -            squares = new int[values.length];
        -         }
        -         public void run() {
        -             int gid = getGlobalID();
        -             squares[gid] = values[gid]*values[gid];
        -         }
        -         public int[] getSquares(){
        -             return(squares);
        -         }
        -     }
        - 
        -

        - To execute this kernel, first create a new instance of it and then call execute(Range _range). -

        -

        -     int[] values = new int[1024];
        -     // fill values array
        -     Range range = Range.create(values.length); // create a range 0..1024
        -     SquareKernel kernel = new SquareKernel(values);
        -     kernel.execute(range);
        - 
        -

        - When execute(Range) returns, all the executions of Kernel.run() have completed and the results are available in the squares array. -

        -

        -     int[] squares = kernel.getSquares();
        -     for (int i=0; i< values.length; i++){
        -        System.out.printf("%4d %4d %8d\n", i, values[i], squares[i]);
        -     }
        - 
        -

        - A different approach to creating kernels that avoids extending Kernel is to write an anonymous inner class: -

        -

        -   
        -     final int[] values = new int[1024];
        -     // fill the values array 
        -     final int[] squares = new int[values.length];
        -     final Range range = Range.create(values.length);
        -   
        -     Kernel kernel = new Kernel(){
        -         public void run() {
        -             int gid = getGlobalID();
        -             squares[gid] = values[gid]*values[gid];
        -         }
        -     };
        -     kernel.execute(range);
        -     for (int i=0; i< values.length; i++){
        -        System.out.printf("%4d %4d %8d\n", i, values[i], squares[i]);
        -     }
        -     
        - 
        -

        -
        Version:
        -
        Alpha, 21/09/2010
        -
        Author:
        -
        gfrost AMD Javalabs
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Nested Class Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Nested Classes 
          Modifier and TypeClass and Description
          static interface Kernel.Constant -
          We can use this Annotation to 'tag' intended constant buffers.
          -
          class Kernel.Entry 
          static class Kernel.EXECUTION_MODE -
          The execution mode ENUM enumerates the possible modes of executing a kernel.
          -
          class Kernel.KernelState -
          This class is for internal Kernel state management
          -
          static interface Kernel.Local -
          We can use this Annotation to 'tag' intended local buffers.
          -
          -
        • -
        - -
          -
        • - - -

          Field Summary

          - - - - - - - - - - - - - - -
          Fields 
          Modifier and TypeField and Description
          static java.lang.StringCONSTANT_SUFFIX -
          We can use this suffix to 'tag' intended constant buffers.
          -
          static java.lang.StringLOCAL_SUFFIX -
          We can use this suffix to 'tag' intended local buffers.
          -
          -
        • -
        - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          Kernel() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voidaddExecutionModes(Kernel.EXECUTION_MODE... platforms) -
          set possible fallback path for execution modes.
          -
          Kernelclone() -
          When using a Java Thread Pool Aparapi uses clone to copy the initial instance to each thread.
          -
          voiddispose() -
          Release any resources associated with this Kernel.
          -
          Kernelexecute(int _range) -
          Start execution of _range kernels.
          -
          Kernelexecute(int _range, - int _passes) -
          Start execution of _passes iterations over the _range of kernels.
          -
          Kernelexecute(Kernel.Entry _entry, - Range _range) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          Kernelexecute(Range _range) -
          Start execution of _range kernels.
          -
          Kernelexecute(Range _range, - int _passes) -
          Start execution of _passes iterations of _range kernels.
          -
          Kernelexecute(java.lang.String _entrypoint, - Range _range) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          Kernelexecute(java.lang.String _entrypoint, - Range _range, - int _passes) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          Kernelget(boolean[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          Kernelget(byte[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          Kernelget(char[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          Kernelget(double[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          Kernelget(float[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          Kernelget(int[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          Kernelget(long[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          longgetAccumulatedExecutionTime() -
          Determine the total execution time of all previous Kernel.execute(range) calls.
          -
          longgetConversionTime() -
          Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call.
          -
          Kernel.EXECUTION_MODEgetExecutionMode() -
          Return the current execution mode.
          -
          longgetExecutionTime() -
          Determine the execution time of the previous Kernel.execute(range) call.
          -
          Kernel.KernelStategetKernelState() 
          static java.lang.StringgetMappedMethodName(ClassModel.ConstantPool.MethodReferenceEntry _methodReferenceEntry) 
          java.util.List<ProfileInfo>getProfileInfo() -
          Get the profiling information from the last successful call to Kernel.execute().
          -
          booleanhasNextExecutionMode() 
          booleanisExplicit() -
          For dev purposes (we should remove this for production) determine whether this Kernel uses explicit memory management
          -
          static booleanisMappedMethod(ClassModel.ConstantPool.MethodReferenceEntry methodReferenceEntry) 
          static booleanisOpenCLDelegateMethod(ClassModel.ConstantPool.MethodReferenceEntry methodReferenceEntry) 
          Kernelput(boolean[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          Kernelput(byte[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          Kernelput(char[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          Kernelput(double[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          Kernelput(float[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          Kernelput(int[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          Kernelput(long[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          abstract voidrun() -
          The entry point of a kernel.
          -
          voidsetExecutionMode(Kernel.EXECUTION_MODE _executionMode) -
          Set the execution mode.
          -
          voidsetExplicit(boolean _explicit) -
          For dev purposes (we should remove this for production) allow us to define that this Kernel uses explicit memory management
          -
          voidsetFallbackExecutionMode() 
          voidtryNextExecutionMode() -
          try the next execution path in the list if there aren't any more than give up
          -
          static booleanusesAtomic32(ClassModel.ConstantPool.MethodReferenceEntry methodReferenceEntry) 
          static booleanusesAtomic64(ClassModel.ConstantPool.MethodReferenceEntry methodReferenceEntry) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            LOCAL_SUFFIX

            -
            public static final java.lang.String LOCAL_SUFFIX
            -
            We can use this suffix to 'tag' intended local buffers. - - - So either name the buffer -
            
            -  int[] buffer_$local$ = new int[1024];
            -  
            - Or use the Annotation form -
            
            -  @Local int[] buffer = new int[1024];
            -  
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CONSTANT_SUFFIX

            -
            public static final java.lang.String CONSTANT_SUFFIX
            -
            We can use this suffix to 'tag' intended constant buffers. - - - So either name the buffer -
            
            -  int[] buffer_$constant$ = new int[1024];
            -  
            - Or use the Annotation form -
            
            -  @Constant int[] buffer = new int[1024];
            -  
            -
            See Also:
            Constant Field Values
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Kernel

            -
            public Kernel()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            run

            -
            public abstract void run()
            -
            The entry point of a kernel. - -

            - Every kernel must override this method.

            -
          • -
          - - - -
            -
          • -

            clone

            -
            public Kernel clone()
            -
            When using a Java Thread Pool Aparapi uses clone to copy the initial instance to each thread. - -

            - If you choose to override clone() you are responsible for delegating to super.clone();

            -
            -
            Overrides:
            -
            clone in class java.lang.Object
            -
            -
          • -
          - - - - - - - -
            -
          • -

            getExecutionTime

            -
            public long getExecutionTime()
            -
            Determine the execution time of the previous Kernel.execute(range) call. - - Note that for the first call this will include the conversion time.
            -
            Returns:
            The time spent executing the kernel (ms)
            See Also:
            getConversionTime();, -getAccumulatedExectutionTime();
            -
          • -
          - - - -
            -
          • -

            getAccumulatedExecutionTime

            -
            public long getAccumulatedExecutionTime()
            -
            Determine the total execution time of all previous Kernel.execute(range) calls. - - Note that this will include the initial conversion time.
            -
            Returns:
            The total time spent executing the kernel (ms)
            See Also:
            getExecutionTime();, -getConversionTime();
            -
          • -
          - - - -
            -
          • -

            getConversionTime

            -
            public long getConversionTime()
            -
            Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call.
            -
            Returns:
            The time spent preparing the kernel for execution using GPU
            See Also:
            getExecutionTime();, -getAccumulatedExectutionTime();
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(Range _range)
            -
            Start execution of _range kernels. -

            - When kernel.execute(globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            -
            Parameters:
            range - The number of Kernels that we would like to initiate.
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(int _range)
            -
            Start execution of _range kernels. -

            - When kernel.execute(_range) is invoked, Aparapi will schedule the execution of _range kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            - Since adding the new Range class this method offers backward compatibility and merely defers to return (execute(Range.create(_range), 1));.

            -
            Parameters:
            _range - The number of Kernels that we would like to initiate.
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(Range _range,
            -             int _passes)
            -
            Start execution of _passes iterations of _range kernels. -

            - When kernel.execute(_range, _passes) is invoked, Aparapi will schedule the execution of _reange kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            -
            Parameters:
            _globalSize - The number of Kernels that we would like to initiate.
            _passes - The number of passes to make
            -
            Returns:
            The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr)
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(int _range,
            -             int _passes)
            -
            Start execution of _passes iterations over the _range of kernels. -

            - When kernel.execute(_range) is invoked, Aparapi will schedule the execution of _range kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            - Since adding the new Range class this method offers backward compatibility and merely defers to return (execute(Range.create(_range), 1));.

            -
            Parameters:
            _range - The number of Kernels that we would like to initiate.
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(Kernel.Entry _entry,
            -             Range _range)
            -
            Start execution of globalSize kernels for the given entrypoint. -

            - When kernel.execute("entrypoint", globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            -
            Parameters:
            _entrypoint - is the name of the method we wish to use as the entrypoint to the kernel
            _globalSize - The number of Kernels that we would like to initiate.
            -
            Returns:
            The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr)
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(java.lang.String _entrypoint,
            -             Range _range)
            -
            Start execution of globalSize kernels for the given entrypoint. -

            - When kernel.execute("entrypoint", globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            -
            Parameters:
            _entrypoint - is the name of the method we wish to use as the entrypoint to the kernel
            _globalSize - The number of Kernels that we would like to initiate.
            -
            Returns:
            The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr)
            -
          • -
          - - - -
            -
          • -

            execute

            -
            public Kernel execute(java.lang.String _entrypoint,
            -             Range _range,
            -             int _passes)
            -
            Start execution of globalSize kernels for the given entrypoint. -

            - When kernel.execute("entrypoint", globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. -

            -
            Parameters:
            _entrypoint - is the name of the method we wish to use as the entrypoint to the kernel
            _globalSize - The number of Kernels that we would like to initiate.
            -
            Returns:
            The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr)
            -
          • -
          - - - -
            -
          • -

            dispose

            -
            public void dispose()
            -
            Release any resources associated with this Kernel. -

            - When the execution mode is CPU or GPU, Aparapi stores some OpenCL resources in a data structure associated with the kernel instance. The - dispose() method must be called to release these resources. -

            - If execute(int _globalSize) is called after dispose() is called the results are undefined.

            -
          • -
          - - - -
            -
          • -

            getExecutionMode

            -
            public Kernel.EXECUTION_MODE getExecutionMode()
            -
            Return the current execution mode. - - Before a Kernel executes, this return value will be the execution mode as determined by the setting of - the EXECUTION_MODE enumeration. By default, this setting is either GPU - if OpenCL is available on the target system, or JTP otherwise. This default setting can be - changed by calling setExecutionMode(). - -

            - After a Kernel executes, the return value will be the mode in which the Kernel actually executed.

            -
            Returns:
            The current execution mode.
            See Also:
            setExecutionMode(EXECUTION_MODE)
            -
          • -
          - - - -
            -
          • -

            setExecutionMode

            -
            public void setExecutionMode(Kernel.EXECUTION_MODE _executionMode)
            -
            Set the execution mode. -

            - This should be regarded as a request. The real mode will be determined at runtime based on the availability of OpenCL and the characteristics of the workload.

            -
            Parameters:
            _executionMode - the requested execution mode.
            See Also:
            getExecutionMode()
            -
          • -
          - - - -
            -
          • -

            setFallbackExecutionMode

            -
            public void setFallbackExecutionMode()
            -
          • -
          - - - - - - - - - - - - - - - - - - - - - - - -
            -
          • -

            setExplicit

            -
            public void setExplicit(boolean _explicit)
            -
            For dev purposes (we should remove this for production) allow us to define that this Kernel uses explicit memory management
            -
            Parameters:
            _explicit - (true if we want explicit memory management)
            -
          • -
          - - - -
            -
          • -

            isExplicit

            -
            public boolean isExplicit()
            -
            For dev purposes (we should remove this for production) determine whether this Kernel uses explicit memory management
            -
            Returns:
            (true if we kernel is using explicit memory management)
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(long[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(double[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(float[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(int[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(byte[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(char[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            put

            -
            public Kernel put(boolean[] array)
            -
            Tag this array so that it is explicitly enqueued before the kernel is executed
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(long[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(double[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(float[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(int[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(byte[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(char[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            get

            -
            public Kernel get(boolean[] array)
            -
            Enqueue a request to return this buffer from the GPU. This method blocks until the array is available.
            -
            Parameters:
            array -
            -
            Returns:
            This kernel so that we can use the 'fluent' style API
            -
          • -
          - - - -
            -
          • -

            getProfileInfo

            -
            public java.util.List<ProfileInfo> getProfileInfo()
            -
            Get the profiling information from the last successful call to Kernel.execute().
            -
            Returns:
            A list of ProfileInfo records
            -
          • -
          - - - -
            -
          • -

            addExecutionModes

            -
            public void addExecutionModes(Kernel.EXECUTION_MODE... platforms)
            -
            set possible fallback path for execution modes. - for example setExecutionFallbackPath(GPU,CPU,JTP) will try to use the GPU - if it fails it will fall back to OpenCL CPU and finally it will try JTP.
            -
          • -
          - - - -
            -
          • -

            hasNextExecutionMode

            -
            public boolean hasNextExecutionMode()
            -
            Returns:
            is there another execution path we can try
            -
          • -
          - - - -
            -
          • -

            tryNextExecutionMode

            -
            public void tryNextExecutionMode()
            -
            try the next execution path in the list if there aren't any more than give up
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/ProfileInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/ProfileInfo.html deleted file mode 100644 index 2ac96272..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/ProfileInfo.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - -ProfileInfo - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Class ProfileInfo

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.ProfileInfo
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class ProfileInfo
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          ProfileInfo(java.lang.String _label, - int _type, - long _start, - long _end, - long _submit, - long _queued) -
          Minimal constructor
          -
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          longgetEnd() 
          java.lang.StringgetLabel() 
          longgetQueued() 
          longgetStart() 
          longgetSubmit() 
          com.amd.aparapi.ProfileInfo.TYPEgetType() 
          java.lang.StringtoString() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ProfileInfo

            -
            public ProfileInfo(java.lang.String _label,
            -           int _type,
            -           long _start,
            -           long _end,
            -           long _submit,
            -           long _queued)
            -
            Minimal constructor
            -
            Parameters:
            _label -
            _type -
            _start -
            _end -
            _submit -
            _queued -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getStart

            -
            public long getStart()
            -
          • -
          - - - -
            -
          • -

            getEnd

            -
            public long getEnd()
            -
          • -
          - - - -
            -
          • -

            getSubmit

            -
            public long getSubmit()
            -
          • -
          - - - -
            -
          • -

            getQueued

            -
            public long getQueued()
            -
          • -
          - - - -
            -
          • -

            getLabel

            -
            public java.lang.String getLabel()
            -
          • -
          - - - -
            -
          • -

            getType

            -
            public com.amd.aparapi.ProfileInfo.TYPE getType()
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/Range.html b/com.amd.aparapi/doc/api/com/amd/aparapi/Range.html deleted file mode 100644 index 28120aab..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/Range.html +++ /dev/null @@ -1,1052 +0,0 @@ - - - - - -Range - - - - - - - - - - - -
      -
      com.amd.aparapi
      -

      Class Range

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class Range
        -extends RangeJNI
        -
        A representation of 1, 2 or 3 dimensional range of execution. - - This class uses factory methods to allow one, two or three dimensional ranges to be created. -
        - For a Kernel operating over the linear range 0..1024 without a specified groups size we would create a one dimensional Range using -
        Range.create(1024);
        - To request the same linear range but with a groupSize of 64 (range must be a multiple of group size!) we would use -
        Range.create(1024,64);
        - To request a two dimensional range over a grid (0..width)x(0..height) where width==512 and height=256 we would use -
        - int width=512;
        - int height=256;
        - Range.create2D(width,height)
        - 
        - Again the above does not specify the group size. One will be chosen for you. If you want to specify the groupSize (say 16x8; 16 wide by 8 high) use -
        - int width=512;
        - int height=256;
        - int groupWidth=16;
        - int groupHeight=8;
        - Range.create2D(width, height, groupWidth, groupHeight);
        - 
        - Finally we can request a three dimensional range using -
        - int width=512;
        - int height=256;
        - int depth=8;
        - Range.create3D(width, height, depth);
        - 
        - And can specify a group size using -
        -  int width=512;
        -  int height=256;
        -  int depth=8;
        -  int groupWidth=8;
        -  int groupHeight=4;
        -  int groupDepth=2
        -  Range.create3D(width, height, depth, groupWidth, groupHeight, groupDepth);
        - 
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          Range(Device _device, - int _dims) -
          Minimal constructor
          -
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static Rangecreate(Device _device, - int _globalWidth) -
          Create a one dimensional range 0.._globalWidth with an undefined group size.
          -
          static Rangecreate(Device _device, - int _globalWidth, - int _localWidth) -
          Create a one dimensional range 0.._globalWidth which is processed in groups of size _localWidth.
          -
          static Rangecreate(int _globalWidth) 
          static Rangecreate(int _globalWidth, - int _localWidth) 
          static Rangecreate2D(Device _device, - int _globalWidth, - int _globalHeight) -
          Create a two dimensional range 0.._globalWidth * 0.._globalHeight choosing suitable values for localWidth and localHeight.
          -
          static Rangecreate2D(Device _device, - int _globalWidth, - int _globalHeight, - int _localWidth, - int _localHeight) -
          Create a two dimensional range 0.._globalWidth x 0.._globalHeight using a group which is _localWidth x _localHeight in size.
          -
          static Rangecreate2D(int _globalWidth, - int _globalHeight) 
          static Rangecreate2D(int _globalWidth, - int _globalHeight, - int _localWidth, - int _localHeight) 
          static Rangecreate3D(Device _device, - int _globalWidth, - int _globalHeight, - int _globalDepth) -
          Create a three dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - choosing suitable values for localWidth, localHeight and localDepth.
          -
          static Rangecreate3D(Device _device, - int _globalWidth, - int _globalHeight, - int _globalDepth, - int _localWidth, - int _localHeight, - int _localDepth) -
          Create a two dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - in groups defined by localWidth * localHeight * localDepth.
          -
          static Rangecreate3D(int _globalWidth, - int _globalHeight, - int _globalDepth) 
          static Rangecreate3D(int _globalWidth, - int _globalHeight, - int _globalDepth, - int _localWidth, - int _localHeight, - int _localDepth) 
          DevicegetDevice() 
          intgetDims() -
          Get the number of dims for this Range.
          -
          intgetGlobalSize_0() 
          intgetGlobalSize_1() 
          intgetGlobalSize_2() 
          intgetGlobalSize(int _dim) -
          Get the globalSize (of the range) given the requested dimension
          -
          intgetLocalSize_0() 
          intgetLocalSize_1() 
          intgetLocalSize_2() 
          intgetLocalSize(int _dim) -
          Get the localSize (of the group) given the requested dimension
          -
          intgetMaxWorkGroupSize() 
          int[]getMaxWorkItemSize() 
          intgetNumGroups(int _dim) -
          Get the number of groups for the given dimension.
          -
          intgetWorkGroupSize() 
          booleanisLocalIsDerived() 
          booleanisValid() 
          voidsetDims(int dims) 
          voidsetGlobalSize_0(int globalSize_0) 
          voidsetGlobalSize_1(int globalSize_1) 
          voidsetGlobalSize_2(int globalSize_2) 
          voidsetLocalIsDerived(boolean localIsDerived) 
          voidsetLocalSize_0(int localSize_0) 
          voidsetLocalSize_1(int localSize_1) 
          voidsetLocalSize_2(int localSize_2) 
          voidsetMaxWorkGroupSize(int maxWorkGroupSize) 
          voidsetMaxWorkItemSize(int[] maxWorkItemSize) 
          voidsetValid(boolean valid) 
          java.lang.StringtoString() -
          Override toString()
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - - - - - -
            -
          • -

            MAX_OPENCL_GROUP_SIZE

            -
            public static final int MAX_OPENCL_GROUP_SIZE
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            MAX_GROUP_SIZE

            -
            public static final int MAX_GROUP_SIZE
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Range

            -
            public Range(Device _device,
            -     int _dims)
            -
            Minimal constructor
            -
            Parameters:
            _device -
            _dims -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            create

            -
            public static Range create(Device _device,
            -           int _globalWidth,
            -           int _localWidth)
            -
            Create a one dimensional range 0.._globalWidth which is processed in groups of size _localWidth. -
            - Note that for this range to be valid :
            _globalWidth > 0 && _localWidth > 0 && _localWidth < MAX_GROUP_SIZE && _globalWidth % _localWidth==0
            -
            Parameters:
            _globalWidth - the overall range we wish to process
            _localWidth - the size of the group we wish to process.
            -
            Returns:
            A new Range with the requested dimensions
            -
          • -
          - - - -
            -
          • -

            create

            -
            public static Range create(Device _device,
            -           int _globalWidth)
            -
            Create a one dimensional range 0.._globalWidth with an undefined group size. -
            - Note that for this range to be valid :-
            _globalWidth > 0 -
            - The groupsize will be chosen such that _localWidth > 0 && _localWidth < MAX_GROUP_SIZE && _globalWidth % _localWidth==0 is true - - We extract the factors of _globalWidth and choose the highest value.
            -
            Parameters:
            _globalWidth - the overall range we wish to process
            -
            Returns:
            A new Range with the requested dimensions
            -
          • -
          - - - -
            -
          • -

            create

            -
            public static Range create(int _globalWidth,
            -           int _localWidth)
            -
          • -
          - - - -
            -
          • -

            create

            -
            public static Range create(int _globalWidth)
            -
          • -
          - - - -
            -
          • -

            create2D

            -
            public static Range create2D(Device _device,
            -             int _globalWidth,
            -             int _globalHeight,
            -             int _localWidth,
            -             int _localHeight)
            -
            Create a two dimensional range 0.._globalWidth x 0.._globalHeight using a group which is _localWidth x _localHeight in size. -
            - Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 && _localWidth>0 && _localHeight>0 && _localWidth*_localHeight < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0.
            -
            Parameters:
            _globalWidth - the overall range we wish to process
            -
            Returns:
            -
          • -
          - - - -
            -
          • -

            create2D

            -
            public static Range create2D(Device _device,
            -             int _globalWidth,
            -             int _globalHeight)
            -
            Create a two dimensional range 0.._globalWidth * 0.._globalHeight choosing suitable values for localWidth and localHeight. -

            - Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 && _localWidth>0 && _localHeight>0 && _localWidth*_localHeight < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0. - -

            - To determine suitable values for _localWidth and _localHeight we extract the factors for _globalWidth and _globalHeight and then - find the largest product ( <= MAX_GROUP_SIZE) with the lowest perimeter. - -

            - For example for MAX_GROUP_SIZE of 16 we favor 4x4 over 1x16.

            -
            Parameters:
            _globalWidth - the overall range we wish to process
            -
            Returns:
            -
          • -
          - - - -
            -
          • -

            create2D

            -
            public static Range create2D(int _globalWidth,
            -             int _globalHeight,
            -             int _localWidth,
            -             int _localHeight)
            -
          • -
          - - - -
            -
          • -

            create2D

            -
            public static Range create2D(int _globalWidth,
            -             int _globalHeight)
            -
          • -
          - - - -
            -
          • -

            create3D

            -
            public static Range create3D(Device _device,
            -             int _globalWidth,
            -             int _globalHeight,
            -             int _globalDepth,
            -             int _localWidth,
            -             int _localHeight,
            -             int _localDepth)
            -
            Create a two dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - in groups defined by localWidth * localHeight * localDepth. -

            - Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 _globalDepth >0 && _localWidth>0 && _localHeight>0 && _localDepth>0 && _localWidth*_localHeight*_localDepth < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0 && _globalDepth%_localDepth==0.

            -
            Parameters:
            _globalWidth - the width of the 3D grid we wish to process
            _globalHieght - the height of the 3D grid we wish to process
            _globalDepth - the depth of the 3D grid we wish to process
            _localWidth - the width of the 3D group we wish to process
            _localHieght - the height of the 3D group we wish to process
            _localDepth - the depth of the 3D group we wish to process
            -
            Returns:
            -
          • -
          - - - -
            -
          • -

            create3D

            -
            public static Range create3D(Device _device,
            -             int _globalWidth,
            -             int _globalHeight,
            -             int _globalDepth)
            -
            Create a three dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - choosing suitable values for localWidth, localHeight and localDepth. -

            - Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 _globalDepth >0 && _localWidth>0 && _localHeight>0 && _localDepth>0 && _localWidth*_localHeight*_localDepth < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0 && _globalDepth%_localDepth==0. - -

            - To determine suitable values for _localWidth,_localHeight and _lodalDepth we extract the factors for _globalWidth,_globalHeight and _globalDepth and then - find the largest product ( <= MAX_GROUP_SIZE) with the lowest perimeter. - -

            - For example for MAX_GROUP_SIZE of 64 we favor 4x4x4 over 1x16x16.

            -
            Parameters:
            _globalWidth - the width of the 3D grid we wish to process
            _globalHieght - the height of the 3D grid we wish to process
            _globalDepth - the depth of the 3D grid we wish to process
            -
            Returns:
            -
          • -
          - - - -
            -
          • -

            create3D

            -
            public static Range create3D(int _globalWidth,
            -             int _globalHeight,
            -             int _globalDepth)
            -
          • -
          - - - -
            -
          • -

            create3D

            -
            public static Range create3D(int _globalWidth,
            -             int _globalHeight,
            -             int _globalDepth,
            -             int _localWidth,
            -             int _localHeight,
            -             int _localDepth)
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            Override toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          - - - -
            -
          • -

            getLocalSize

            -
            public int getLocalSize(int _dim)
            -
            Get the localSize (of the group) given the requested dimension
            -
            Parameters:
            _dim - 0=width, 1=height, 2=depth
            -
            Returns:
            The size of the group give the requested dimension
            -
          • -
          - - - -
            -
          • -

            getGlobalSize

            -
            public int getGlobalSize(int _dim)
            -
            Get the globalSize (of the range) given the requested dimension
            -
            Parameters:
            _dim - 0=width, 1=height, 2=depth
            -
            Returns:
            The size of the group give the requested dimension
            -
          • -
          - - - -
            -
          • -

            getNumGroups

            -
            public int getNumGroups(int _dim)
            -
            Get the number of groups for the given dimension. - -

            - This will essentially return globalXXXX/localXXXX for the given dimension (width, height, depth)

            -
            Parameters:
            _dim - The dim we are interested in 0, 1 or 2
            -
            Returns:
            the number of groups for the given dimension.
            -
          • -
          - - - -
            -
          • -

            getWorkGroupSize

            -
            public int getWorkGroupSize()
            -
            Returns:
            The product of all valid localSize dimensions
            -
          • -
          - - - -
            -
          • -

            getDevice

            -
            public Device getDevice()
            -
          • -
          - - - -
            -
          • -

            getGlobalSize_0

            -
            public int getGlobalSize_0()
            -
            Returns:
            the globalSize_0
            -
          • -
          - - - -
            -
          • -

            setGlobalSize_0

            -
            public void setGlobalSize_0(int globalSize_0)
            -
            Parameters:
            globalSize_0 - the globalSize_0 to set
            -
          • -
          - - - -
            -
          • -

            getLocalSize_0

            -
            public int getLocalSize_0()
            -
            Returns:
            the localSize_0
            -
          • -
          - - - -
            -
          • -

            setLocalSize_0

            -
            public void setLocalSize_0(int localSize_0)
            -
            Parameters:
            localSize_0 - the localSize_0 to set
            -
          • -
          - - - -
            -
          • -

            getGlobalSize_1

            -
            public int getGlobalSize_1()
            -
            Returns:
            the globalSize_1
            -
          • -
          - - - -
            -
          • -

            setGlobalSize_1

            -
            public void setGlobalSize_1(int globalSize_1)
            -
            Parameters:
            globalSize_1 - the globalSize_1 to set
            -
          • -
          - - - -
            -
          • -

            getLocalSize_1

            -
            public int getLocalSize_1()
            -
            Returns:
            the localSize_1
            -
          • -
          - - - -
            -
          • -

            setLocalSize_1

            -
            public void setLocalSize_1(int localSize_1)
            -
            Parameters:
            localSize_1 - the localSize_1 to set
            -
          • -
          - - - -
            -
          • -

            getGlobalSize_2

            -
            public int getGlobalSize_2()
            -
            Returns:
            the globalSize_2
            -
          • -
          - - - -
            -
          • -

            setGlobalSize_2

            -
            public void setGlobalSize_2(int globalSize_2)
            -
            Parameters:
            globalSize_2 - the globalSize_2 to set
            -
          • -
          - - - -
            -
          • -

            getLocalSize_2

            -
            public int getLocalSize_2()
            -
            Returns:
            the localSize_2
            -
          • -
          - - - -
            -
          • -

            setLocalSize_2

            -
            public void setLocalSize_2(int localSize_2)
            -
            Parameters:
            localSize_2 - the localSize_2 to set
            -
          • -
          - - - -
            -
          • -

            getDims

            -
            public int getDims()
            -
            Get the number of dims for this Range.
            -
            Returns:
            0, 1 or 2 for one dimensional, two dimensional and three dimensional range respectively.
            -
          • -
          - - - -
            -
          • -

            setDims

            -
            public void setDims(int dims)
            -
            Parameters:
            dims - the dims to set
            -
          • -
          - - - -
            -
          • -

            isValid

            -
            public boolean isValid()
            -
            Returns:
            the valid
            -
          • -
          - - - -
            -
          • -

            setValid

            -
            public void setValid(boolean valid)
            -
            Parameters:
            valid - the valid to set
            -
          • -
          - - - -
            -
          • -

            isLocalIsDerived

            -
            public boolean isLocalIsDerived()
            -
            Returns:
            the localIsDerived
            -
          • -
          - - - -
            -
          • -

            setLocalIsDerived

            -
            public void setLocalIsDerived(boolean localIsDerived)
            -
            Parameters:
            localIsDerived - the localIsDerived to set
            -
          • -
          - - - -
            -
          • -

            getMaxWorkGroupSize

            -
            public int getMaxWorkGroupSize()
            -
            Returns:
            the maxWorkGroupSize
            -
          • -
          - - - -
            -
          • -

            setMaxWorkGroupSize

            -
            public void setMaxWorkGroupSize(int maxWorkGroupSize)
            -
            Parameters:
            maxWorkGroupSize - the maxWorkGroupSize to set
            -
          • -
          - - - -
            -
          • -

            getMaxWorkItemSize

            -
            public int[] getMaxWorkItemSize()
            -
            Returns:
            the maxWorkItemSize
            -
          • -
          - - - -
            -
          • -

            setMaxWorkItemSize

            -
            public void setMaxWorkItemSize(int[] maxWorkItemSize)
            -
            Parameters:
            maxWorkItemSize - the maxWorkItemSize to set
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/Experimental.html b/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/Experimental.html deleted file mode 100644 index b8915808..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/Experimental.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Experimental - - - - - - - - - - - -
      -
      com.amd.aparapi.annotation
      -

      Annotation Type Experimental

      -
      -
      -
      -
        -
      • -
        -
        -
        public @interface Experimental
        -
        Used to tag experimental features (methods/fields) -

        - Do not rely on anything tagged as experimental, it will probably be retracted/refactored

        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/class-use/Experimental.html b/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/class-use/Experimental.html deleted file mode 100644 index cf1d3318..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/class-use/Experimental.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.annotation.Experimental - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.annotation.Experimental

      -
      -
      No usage of com.amd.aparapi.annotation.Experimental
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-frame.html deleted file mode 100644 index c34cc637..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-frame.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - -com.amd.aparapi.annotation - - - - -

      com.amd.aparapi.annotation

      -
      -

      Annotation Types

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-summary.html deleted file mode 100644 index 810c2ad9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-summary.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - -com.amd.aparapi.annotation - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.annotation

      -
      -
      -
        -
      • - - - - - - - - - - - - -
        Annotation Types Summary 
        Annotation TypeDescription
        Experimental -
        Used to tag experimental features (methods/fields)
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-tree.html deleted file mode 100644 index fbd61855..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-tree.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - -com.amd.aparapi.annotation Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.annotation

      -Package Hierarchies: - -
      -
      -

      Annotation Type Hierarchy

      -
        -
      • com.amd.aparapi.annotation.Experimental (implements java.lang.annotation.Annotation)
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-use.html deleted file mode 100644 index 3876c5f4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/annotation/package-use.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.annotation - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.annotation

      -
      -
      No usage of com.amd.aparapi.annotation
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Config.InstructionListener.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Config.InstructionListener.html deleted file mode 100644 index 67c84d97..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Config.InstructionListener.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.Config.InstructionListener - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.Config.InstructionListener

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Config.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Config.html deleted file mode 100644 index f7074da1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Config.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Config - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Config

      -
      -
      No usage of com.amd.aparapi.Config
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Constant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Constant.html deleted file mode 100644 index fb3bb77b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Constant.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Kernel.Constant - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Kernel.Constant

      -
      -
      No usage of com.amd.aparapi.Kernel.Constant
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.EXECUTION_MODE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.EXECUTION_MODE.html deleted file mode 100644 index dbf9fa19..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.EXECUTION_MODE.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Kernel.EXECUTION_MODE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Kernel.EXECUTION_MODE

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Entry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Entry.html deleted file mode 100644 index d22865d9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Entry.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Kernel.Entry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Kernel.Entry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.KernelState.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.KernelState.html deleted file mode 100644 index f9056c86..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.KernelState.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Kernel.KernelState - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Kernel.KernelState

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Local.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Local.html deleted file mode 100644 index ebff66a6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.Local.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Kernel.Local - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Kernel.Local

      -
      -
      No usage of com.amd.aparapi.Kernel.Local
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.html deleted file mode 100644 index 68c0ed2d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Kernel.html +++ /dev/null @@ -1,336 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Kernel - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Kernel

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - -
        Packages that use Kernel 
        PackageDescription
        com.amd.aparapi 
        com.amd.aparapi.internal.kernel 
        -
      • -
      • -
          -
        • - - -

          Uses of Kernel in com.amd.aparapi

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi that return Kernel 
          Modifier and TypeMethod and Description
          KernelKernel.clone() -
          When using a Java Thread Pool Aparapi uses clone to copy the initial instance to each thread.
          -
          KernelKernel.execute(int _range) -
          Start execution of _range kernels.
          -
          KernelKernel.execute(int _range, - int _passes) -
          Start execution of _passes iterations over the _range of kernels.
          -
          KernelKernel.execute(Kernel.Entry _entry, - Range _range) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          KernelKernel.execute(Range _range) -
          Start execution of _range kernels.
          -
          KernelKernel.Entry.execute(Range _range) 
          KernelKernel.execute(Range _range, - int _passes) -
          Start execution of _passes iterations of _range kernels.
          -
          KernelKernel.execute(java.lang.String _entrypoint, - Range _range) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          KernelKernel.execute(java.lang.String _entrypoint, - Range _range, - int _passes) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          KernelKernel.get(boolean[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.get(byte[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.get(char[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.get(double[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.get(float[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.get(int[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.get(long[] array) -
          Enqueue a request to return this buffer from the GPU.
          -
          KernelKernel.put(boolean[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          KernelKernel.put(byte[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          KernelKernel.put(char[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          KernelKernel.put(double[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          KernelKernel.put(float[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          KernelKernel.put(int[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          KernelKernel.put(long[] array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed
          -
          -
        • -
        • - - -

          Uses of Kernel in com.amd.aparapi.internal.kernel

          - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi.internal.kernel that return Kernel 
          Modifier and TypeMethod and Description
          KernelKernelRunner.execute(Kernel.Entry entry, - Range _range, - int _passes) 
          KernelKernelRunner.execute(java.lang.String _entrypointName, - Range _range, - int _passes) 
          - - - - - - - - - - -
          Constructors in com.amd.aparapi.internal.kernel with parameters of type Kernel 
          Constructor and Description
          KernelRunner(Kernel _kernel) -
          Create a KernelRunner for a specific Kernel instance.
          -
          -
        • -
        -
      • -
      -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/ProfileInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/ProfileInfo.html deleted file mode 100644 index 91f36d0d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/ProfileInfo.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.ProfileInfo - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.ProfileInfo

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Range.html b/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Range.html deleted file mode 100644 index 38143631..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/class-use/Range.html +++ /dev/null @@ -1,383 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.Range - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.Range

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - - - - - -
        Packages that use Range 
        PackageDescription
        com.amd.aparapi 
        com.amd.aparapi.device 
        com.amd.aparapi.internal.kernel 
        -
      • -
      • -
          -
        • - - -

          Uses of Range in com.amd.aparapi

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi that return Range 
          Modifier and TypeMethod and Description
          static RangeRange.create(Device _device, - int _globalWidth) -
          Create a one dimensional range 0.._globalWidth with an undefined group size.
          -
          static RangeRange.create(Device _device, - int _globalWidth, - int _localWidth) -
          Create a one dimensional range 0.._globalWidth which is processed in groups of size _localWidth.
          -
          static RangeRange.create(int _globalWidth) 
          static RangeRange.create(int _globalWidth, - int _localWidth) 
          static RangeRange.create2D(Device _device, - int _globalWidth, - int _globalHeight) -
          Create a two dimensional range 0.._globalWidth * 0.._globalHeight choosing suitable values for localWidth and localHeight.
          -
          static RangeRange.create2D(Device _device, - int _globalWidth, - int _globalHeight, - int _localWidth, - int _localHeight) -
          Create a two dimensional range 0.._globalWidth x 0.._globalHeight using a group which is _localWidth x _localHeight in size.
          -
          static RangeRange.create2D(int _globalWidth, - int _globalHeight) 
          static RangeRange.create2D(int _globalWidth, - int _globalHeight, - int _localWidth, - int _localHeight) 
          static RangeRange.create3D(Device _device, - int _globalWidth, - int _globalHeight, - int _globalDepth) -
          Create a three dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - choosing suitable values for localWidth, localHeight and localDepth.
          -
          static RangeRange.create3D(Device _device, - int _globalWidth, - int _globalHeight, - int _globalDepth, - int _localWidth, - int _localHeight, - int _localDepth) -
          Create a two dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - in groups defined by localWidth * localHeight * localDepth.
          -
          static RangeRange.create3D(int _globalWidth, - int _globalHeight, - int _globalDepth) 
          static RangeRange.create3D(int _globalWidth, - int _globalHeight, - int _globalDepth, - int _localWidth, - int _localHeight, - int _localDepth) 
          RangeKernel.KernelState.getRange() 
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi with parameters of type Range 
          Modifier and TypeMethod and Description
          KernelKernel.execute(Kernel.Entry _entry, - Range _range) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          KernelKernel.execute(Range _range) -
          Start execution of _range kernels.
          -
          KernelKernel.Entry.execute(Range _range) 
          KernelKernel.execute(Range _range, - int _passes) -
          Start execution of _passes iterations of _range kernels.
          -
          KernelKernel.execute(java.lang.String _entrypoint, - Range _range) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          KernelKernel.execute(java.lang.String _entrypoint, - Range _range, - int _passes) -
          Start execution of globalSize kernels for the given entrypoint.
          -
          voidKernel.KernelState.setRange(Range range) 
          -
        • -
        • - - -

          Uses of Range in com.amd.aparapi.device

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi.device that return Range 
          Modifier and TypeMethod and Description
          RangeDevice.createRange(int _globalWidth) 
          RangeDevice.createRange(int _globalWidth, - int _localWidth) 
          RangeDevice.createRange2D(int _globalWidth, - int _globalHeight) 
          RangeDevice.createRange2D(int _globalWidth, - int _globalHeight, - int _localWidth, - int _localHeight) 
          RangeDevice.createRange3D(int _globalWidth, - int _globalHeight, - int _globalDepth) 
          RangeDevice.createRange3D(int _globalWidth, - int _globalHeight, - int _globalDepth, - int _localWidth, - int _localHeight, - int _localDepth) 
          -
        • -
        • - - -

          Uses of Range in com.amd.aparapi.internal.kernel

          - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi.internal.kernel with parameters of type Range 
          Modifier and TypeMethod and Description
          KernelKernelRunner.execute(Kernel.Entry entry, - Range _range, - int _passes) 
          KernelKernelRunner.execute(java.lang.String _entrypointName, - Range _range, - int _passes) 
          -
        • -
        -
      • -
      -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/Device.TYPE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/Device.TYPE.html deleted file mode 100644 index 20c1d7bd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/Device.TYPE.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - -Device.TYPE - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Enum Device.TYPE

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • java.lang.Enum<Device.TYPE>
        • -
        • -
            -
          • com.amd.aparapi.device.Device.TYPE
          • -
          -
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.io.Serializable, java.lang.Comparable<Device.TYPE>
        -
        -
        -
        Enclosing class:
        -
        Device
        -
        -
        -
        -
        public static enum Device.TYPE
        -extends java.lang.Enum<Device.TYPE>
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - - - - - - - -
          Enum Constants 
          Enum Constant and Description
          CPU 
          GPU 
          JTP 
          SEQ 
          UNKNOWN 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static Device.TYPEvalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static Device.TYPE[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            values

            -
            public static Device.TYPE[] values()
            -
            Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
            -for (Device.TYPE c : Device.TYPE.values())
            -    System.out.println(c);
            -
            -
            Returns:
            an array containing the constants of this enum type, in -the order they are declared
            -
          • -
          - - - -
            -
          • -

            valueOf

            -
            public static Device.TYPE valueOf(java.lang.String name)
            -
            Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
            -
            Parameters:
            name - the name of the enum constant to be returned.
            -
            Returns:
            the enum constant with the specified name
            -
            Throws:
            -
            java.lang.IllegalArgumentException - if this enum type has no constant -with the specified name
            -
            java.lang.NullPointerException - if the argument is null
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/Device.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/Device.html deleted file mode 100644 index 3e886456..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/Device.html +++ /dev/null @@ -1,524 +0,0 @@ - - - - - -Device - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Class Device

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.device.Device
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        JavaDevice, OpenCLDevice
        -
        -
        -
        -
        public abstract class Device
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Device

            -
            public Device()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            best

            -
            public static Device best()
            -
          • -
          - - - - - - - -
            -
          • -

            firstGPU

            -
            public static Device firstGPU()
            -
          • -
          - - - -
            -
          • -

            firstCPU

            -
            public static Device firstCPU()
            -
          • -
          - - - - - - - -
            -
          • -

            setType

            -
            public void setType(Device.TYPE type)
            -
          • -
          - - - -
            -
          • -

            getMaxWorkItemDimensions

            -
            public int getMaxWorkItemDimensions()
            -
          • -
          - - - -
            -
          • -

            setMaxWorkItemDimensions

            -
            public void setMaxWorkItemDimensions(int _maxWorkItemDimensions)
            -
          • -
          - - - -
            -
          • -

            getMaxWorkGroupSize

            -
            public int getMaxWorkGroupSize()
            -
          • -
          - - - -
            -
          • -

            setMaxWorkGroupSize

            -
            public void setMaxWorkGroupSize(int _maxWorkGroupSize)
            -
          • -
          - - - -
            -
          • -

            getMaxWorkItemSize

            -
            public int[] getMaxWorkItemSize()
            -
          • -
          - - - -
            -
          • -

            setMaxWorkItemSize

            -
            public void setMaxWorkItemSize(int[] maxWorkItemSize)
            -
          • -
          - - - -
            -
          • -

            createRange

            -
            public Range createRange(int _globalWidth)
            -
          • -
          - - - -
            -
          • -

            createRange

            -
            public Range createRange(int _globalWidth,
            -                int _localWidth)
            -
          • -
          - - - -
            -
          • -

            createRange2D

            -
            public Range createRange2D(int _globalWidth,
            -                  int _globalHeight)
            -
          • -
          - - - -
            -
          • -

            createRange2D

            -
            public Range createRange2D(int _globalWidth,
            -                  int _globalHeight,
            -                  int _localWidth,
            -                  int _localHeight)
            -
          • -
          - - - -
            -
          • -

            createRange3D

            -
            public Range createRange3D(int _globalWidth,
            -                  int _globalHeight,
            -                  int _globalDepth)
            -
          • -
          - - - -
            -
          • -

            createRange3D

            -
            public Range createRange3D(int _globalWidth,
            -                  int _globalHeight,
            -                  int _globalDepth,
            -                  int _localWidth,
            -                  int _localHeight,
            -                  int _localDepth)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/JavaDevice.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/JavaDevice.html deleted file mode 100644 index c06c8d3b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/JavaDevice.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - -JavaDevice - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Class JavaDevice

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class JavaDevice
        -extends Device
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            JavaDevice

            -
            public JavaDevice()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.DeviceComparitor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.DeviceComparitor.html deleted file mode 100644 index 61badcf5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.DeviceComparitor.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - -OpenCLDevice.DeviceComparitor - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Interface OpenCLDevice.DeviceComparitor

      -
      -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        OpenCLDevice
        -
        -
        -
        -
        public static interface OpenCLDevice.DeviceComparitor
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.DeviceSelector.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.DeviceSelector.html deleted file mode 100644 index 655d10da..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.DeviceSelector.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - -OpenCLDevice.DeviceSelector - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Interface OpenCLDevice.DeviceSelector

      -
      -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        OpenCLDevice
        -
        -
        -
        -
        public static interface OpenCLDevice.DeviceSelector
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.OpenCLInvocationHandler.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.OpenCLInvocationHandler.html deleted file mode 100644 index 89c79f2d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.OpenCLInvocationHandler.html +++ /dev/null @@ -1,277 +0,0 @@ - - - - - -OpenCLDevice.OpenCLInvocationHandler - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Class OpenCLDevice.OpenCLInvocationHandler<T extends OpenCL<T>>

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.device.OpenCLDevice.OpenCLInvocationHandler<T>
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.lang.reflect.InvocationHandler
        -
        -
        -
        Enclosing class:
        -
        OpenCLDevice
        -
        -
        -
        -
        public static class OpenCLDevice.OpenCLInvocationHandler<T extends OpenCL<T>>
        -extends java.lang.Object
        -implements java.lang.reflect.InvocationHandler
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          java.lang.Objectinvoke(java.lang.Object proxy, - java.lang.reflect.Method method, - java.lang.Object[] args) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLDevice.OpenCLInvocationHandler

            -
            public OpenCLDevice.OpenCLInvocationHandler(OpenCLProgram _program,
            -                                    java.util.Map<java.lang.String,OpenCLKernel> _map)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            invoke

            -
            public java.lang.Object invoke(java.lang.Object proxy,
            -                      java.lang.reflect.Method method,
            -                      java.lang.Object[] args)
            -                        throws java.lang.Throwable
            -
            -
            Specified by:
            -
            invoke in interface java.lang.reflect.InvocationHandler
            -
            Throws:
            -
            java.lang.Throwable
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.html deleted file mode 100644 index d2fd95ff..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/OpenCLDevice.html +++ /dev/null @@ -1,526 +0,0 @@ - - - - - -OpenCLDevice - - - - - - - - - - - -
      -
      com.amd.aparapi.device
      -

      Class OpenCLDevice

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class OpenCLDevice
        -extends Device
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLDevice

            -
            public OpenCLDevice(OpenCLPlatform _platform,
            -            long _deviceId,
            -            Device.TYPE _type)
            -
            Minimal constructor
            -
            Parameters:
            _platform -
            _deviceId -
            _type -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getOpenCLPlatform

            -
            public OpenCLPlatform getOpenCLPlatform()
            -
          • -
          - - - -
            -
          • -

            getMaxComputeUnits

            -
            public int getMaxComputeUnits()
            -
          • -
          - - - -
            -
          • -

            setMaxComputeUnits

            -
            public void setMaxComputeUnits(int _maxComputeUnits)
            -
          • -
          - - - -
            -
          • -

            getLocalMemSize

            -
            public long getLocalMemSize()
            -
          • -
          - - - -
            -
          • -

            setLocalMemSize

            -
            public void setLocalMemSize(long _localMemSize)
            -
          • -
          - - - -
            -
          • -

            getMaxMemAllocSize

            -
            public long getMaxMemAllocSize()
            -
          • -
          - - - -
            -
          • -

            setMaxMemAllocSize

            -
            public void setMaxMemAllocSize(long _maxMemAllocSize)
            -
          • -
          - - - -
            -
          • -

            getGlobalMemSize

            -
            public long getGlobalMemSize()
            -
          • -
          - - - -
            -
          • -

            setGlobalMemSize

            -
            public void setGlobalMemSize(long _globalMemSize)
            -
          • -
          - - - -
            -
          • -

            getDeviceId

            -
            public long getDeviceId()
            -
          • -
          - - - -
            -
          • -

            getArgs

            -
            public java.util.List<OpenCLArgDescriptor> getArgs(java.lang.reflect.Method m)
            -
          • -
          - - - -
            -
          • -

            bind

            -
            public <T extends OpenCL<T>> T bind(java.lang.Class<T> _interface,
            -                           java.io.InputStream _inputStream)
            -
          • -
          - - - -
            -
          • -

            bind

            -
            public <T extends OpenCL<T>> T bind(java.lang.Class<T> _interface)
            -
          • -
          - - - -
            -
          • -

            bind

            -
            public <T extends OpenCL<T>> T bind(java.lang.Class<T> _interface,
            -                           java.lang.String _source)
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/Device.TYPE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/Device.TYPE.html deleted file mode 100644 index c7413a0e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/Device.TYPE.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.device.Device.TYPE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.device.Device.TYPE

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/Device.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/Device.html deleted file mode 100644 index 080ffbc6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/Device.html +++ /dev/null @@ -1,285 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.device.Device - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.device.Device

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - -
        Packages that use Device 
        PackageDescription
        com.amd.aparapi 
        com.amd.aparapi.device 
        -
      • -
      • -
          -
        • - - -

          Uses of Device in com.amd.aparapi

          - - - - - - - - - - - - -
          Methods in com.amd.aparapi that return Device 
          Modifier and TypeMethod and Description
          DeviceRange.getDevice() 
          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi with parameters of type Device 
          Modifier and TypeMethod and Description
          static RangeRange.create(Device _device, - int _globalWidth) -
          Create a one dimensional range 0.._globalWidth with an undefined group size.
          -
          static RangeRange.create(Device _device, - int _globalWidth, - int _localWidth) -
          Create a one dimensional range 0.._globalWidth which is processed in groups of size _localWidth.
          -
          static RangeRange.create2D(Device _device, - int _globalWidth, - int _globalHeight) -
          Create a two dimensional range 0.._globalWidth * 0.._globalHeight choosing suitable values for localWidth and localHeight.
          -
          static RangeRange.create2D(Device _device, - int _globalWidth, - int _globalHeight, - int _localWidth, - int _localHeight) -
          Create a two dimensional range 0.._globalWidth x 0.._globalHeight using a group which is _localWidth x _localHeight in size.
          -
          static RangeRange.create3D(Device _device, - int _globalWidth, - int _globalHeight, - int _globalDepth) -
          Create a three dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - choosing suitable values for localWidth, localHeight and localDepth.
          -
          static RangeRange.create3D(Device _device, - int _globalWidth, - int _globalHeight, - int _globalDepth, - int _localWidth, - int _localHeight, - int _localDepth) -
          Create a two dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - in groups defined by localWidth * localHeight * localDepth.
          -
          - - - - - - - - - - -
          Constructors in com.amd.aparapi with parameters of type Device 
          Constructor and Description
          Range(Device _device, - int _dims) -
          Minimal constructor
          -
          -
        • -
        • - - -

          Uses of Device in com.amd.aparapi.device

          - - - - - - - - - - - - - - - - -
          Subclasses of Device in com.amd.aparapi.device 
          Modifier and TypeClass and Description
          class JavaDevice 
          class OpenCLDevice 
          - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods in com.amd.aparapi.device that return Device 
          Modifier and TypeMethod and Description
          static DeviceDevice.best() 
          static DeviceDevice.first(Device.TYPE _type) 
          static DeviceDevice.firstCPU() 
          static DeviceDevice.firstGPU() 
          -
        • -
        -
      • -
      -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/JavaDevice.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/JavaDevice.html deleted file mode 100644 index e20cc0b5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/JavaDevice.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.device.JavaDevice - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.device.JavaDevice

      -
      -
      No usage of com.amd.aparapi.device.JavaDevice
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.DeviceComparitor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.DeviceComparitor.html deleted file mode 100644 index 96b14745..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.DeviceComparitor.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.device.OpenCLDevice.DeviceComparitor - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.device.OpenCLDevice.DeviceComparitor

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.DeviceSelector.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.DeviceSelector.html deleted file mode 100644 index ae4966bb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.DeviceSelector.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.device.OpenCLDevice.DeviceSelector - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.device.OpenCLDevice.DeviceSelector

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.OpenCLInvocationHandler.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.OpenCLInvocationHandler.html deleted file mode 100644 index a6040515..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.OpenCLInvocationHandler.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.device.OpenCLDevice.OpenCLInvocationHandler - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.device.OpenCLDevice.OpenCLInvocationHandler

      -
      -
      No usage of com.amd.aparapi.device.OpenCLDevice.OpenCLInvocationHandler
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.html deleted file mode 100644 index 2075c37e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/class-use/OpenCLDevice.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.device.OpenCLDevice - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.device.OpenCLDevice

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-frame.html deleted file mode 100644 index 5b1f143a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-frame.html +++ /dev/null @@ -1,31 +0,0 @@ - - - - - -com.amd.aparapi.device - - - - -

      com.amd.aparapi.device

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-summary.html deleted file mode 100644 index 9b971ac8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-summary.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - -com.amd.aparapi.device - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.device

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-tree.html deleted file mode 100644 index 450bd07a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-tree.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -com.amd.aparapi.device Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.device

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -

      Interface Hierarchy

      - -

      Enum Hierarchy

      -
        -
      • java.lang.Object -
          -
        • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) - -
        • -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-use.html deleted file mode 100644 index 6914844e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/device/package-use.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.device - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.device

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/DeprecatedException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/exception/DeprecatedException.html deleted file mode 100644 index bd38abc6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/DeprecatedException.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - -DeprecatedException - - - - - - - - - - - -
      -
      com.amd.aparapi.exception
      -

      Class DeprecatedException

      -
      -
      - -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          DeprecatedException(java.lang.String msg) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Throwable

            -addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            DeprecatedException

            -
            public DeprecatedException(java.lang.String msg)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/class-use/DeprecatedException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/exception/class-use/DeprecatedException.html deleted file mode 100644 index 673348fe..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/class-use/DeprecatedException.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.exception.DeprecatedException - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.exception.DeprecatedException

      -
      -
      No usage of com.amd.aparapi.exception.DeprecatedException
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-frame.html deleted file mode 100644 index 75fcb7d4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-frame.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - - -com.amd.aparapi.exception - - - - -

      com.amd.aparapi.exception

      -
      -

      Exceptions

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-summary.html deleted file mode 100644 index 8669461b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-summary.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - -com.amd.aparapi.exception - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.exception

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-tree.html deleted file mode 100644 index 59fe9c6c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-tree.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - - -com.amd.aparapi.exception Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.exception

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object -
          -
        • java.lang.Throwable (implements java.io.Serializable) - -
        • -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-use.html deleted file mode 100644 index 1645c55a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/exception/package-use.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.exception - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.exception

      -
      -
      No usage of com.amd.aparapi.exception
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/DocMe.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/DocMe.html deleted file mode 100644 index ea733808..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/DocMe.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -DocMe - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.annotation
      -

      Annotation Type DocMe

      -
      -
      -
      -
        -
      • -
        -
        -
        public @interface DocMe
        -
        Use this annotation to tag stuff that needs Java Doc added
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/RemoveMe.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/RemoveMe.html deleted file mode 100644 index 5a2e28c6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/RemoveMe.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -RemoveMe - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.annotation
      -

      Annotation Type RemoveMe

      -
      -
      -
      -
        -
      • -
        -
        -
        public @interface RemoveMe
        -
        Use this annotation to tag fields that we think need to be removed (method/field/var)
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/Unused.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/Unused.html deleted file mode 100644 index 55388e64..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/Unused.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Unused - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.annotation
      -

      Annotation Type Unused

      -
      -
      -
      -
        -
      • -
        -
        -
        public @interface Unused
        -
        Used to tag unused features (methods/fields) -

        - Do not rely on anything tagged as unused, it will probably be retracted/refactored

        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/UsedByJNICode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/UsedByJNICode.html deleted file mode 100644 index 84d4a336..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/UsedByJNICode.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - -UsedByJNICode - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.annotation
      -

      Annotation Type UsedByJNICode

      -
      -
      -
      -
        -
      • -
        -
        -
        public @interface UsedByJNICode
        -
        Be careful changing the name/type of this field as it is referenced from JNI code.
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/DocMe.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/DocMe.html deleted file mode 100644 index 5fdd71cf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/DocMe.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.annotation.DocMe - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.annotation.DocMe

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/RemoveMe.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/RemoveMe.html deleted file mode 100644 index 170fffce..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/RemoveMe.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.annotation.RemoveMe - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.annotation.RemoveMe

      -
      -
      No usage of com.amd.aparapi.internal.annotation.RemoveMe
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/Unused.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/Unused.html deleted file mode 100644 index 4f45de45..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/Unused.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.annotation.Unused - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.annotation.Unused

      -
      -
      No usage of com.amd.aparapi.internal.annotation.Unused
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/UsedByJNICode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/UsedByJNICode.html deleted file mode 100644 index af3184da..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/class-use/UsedByJNICode.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.annotation.UsedByJNICode - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.annotation.UsedByJNICode

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-frame.html deleted file mode 100644 index dcf77141..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-frame.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -com.amd.aparapi.internal.annotation - - - - -

      com.amd.aparapi.internal.annotation

      -
      -

      Annotation Types

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-summary.html deleted file mode 100644 index 75d08419..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-summary.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - -com.amd.aparapi.internal.annotation - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.annotation

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - - - - - - - - - -
        Annotation Types Summary 
        Annotation TypeDescription
        DocMe -
        Use this annotation to tag stuff that needs Java Doc added
        -
        RemoveMe -
        Use this annotation to tag fields that we think need to be removed (method/field/var)
        -
        Unused -
        Used to tag unused features (methods/fields)
        -
        UsedByJNICode -
        Be careful changing the name/type of this field as it is referenced from JNI code.
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-tree.html deleted file mode 100644 index 6e236998..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-tree.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - -com.amd.aparapi.internal.annotation Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.annotation

      -Package Hierarchies: - -
      -
      -

      Annotation Type Hierarchy

      -
        -
      • com.amd.aparapi.internal.annotation.UsedByJNICode (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.Unused (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.RemoveMe (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.DocMe (implements java.lang.annotation.Annotation)
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-use.html deleted file mode 100644 index 56f9c2ef..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/annotation/package-use.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.annotation - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.annotation

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/AparapiException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/AparapiException.html deleted file mode 100644 index eff55549..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/AparapiException.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - -AparapiException - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.exception
      -

      Class AparapiException

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • java.lang.Throwable
        • -
        • -
            -
          • java.lang.Exception
          • -
          • -
              -
            • com.amd.aparapi.internal.exception.AparapiException
            • -
            -
          • -
          -
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.io.Serializable
        -
        -
        -
        Direct Known Subclasses:
        -
        ClassParseException, CodeGenException, DeprecatedException, RangeException
        -
        -
        -
        -
        public class AparapiException
        -extends java.lang.Exception
        -
        We use AparapiException class and subclasses to wrap other - Exception classes, mainly to allow differentiation between Aparapi specific issues at runtime. - - The class parser for example will throw a specific ClassParseException if any Aparapi unfriendly - constructs are found. This allows us to fail fast during classfile parsing.
        -
        Author:
        -
        gfrost
        -
        See Also:
        ClassParseException, -CodeGenException, -Serialized Form
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - - - - -
          Constructors 
          Constructor and Description
          AparapiException(java.lang.String _msg) 
          AparapiException(java.lang.Throwable _t) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Throwable

            -addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            AparapiException

            -
            public AparapiException(java.lang.String _msg)
            -
          • -
          - - - -
            -
          • -

            AparapiException

            -
            public AparapiException(java.lang.Throwable _t)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/ClassParseException.TYPE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/ClassParseException.TYPE.html deleted file mode 100644 index 4fd2a725..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/ClassParseException.TYPE.html +++ /dev/null @@ -1,698 +0,0 @@ - - - - - -ClassParseException.TYPE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.exception
      -

      Enum ClassParseException.TYPE

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/ClassParseException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/ClassParseException.html deleted file mode 100644 index 7cadf31c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/ClassParseException.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - -ClassParseException - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.exception
      -

      Class ClassParseException

      -
      -
      - -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.io.Serializable
        -
        -
        -
        -
        public class ClassParseException
        -extends AparapiException
        -
        We throw ClassParseExceptions (derived from AparapiException) if we encounter any Aparapi unfriendly - constructs. This allows us to fail fast.
        -
        Author:
        -
        gfrost
        -
        See Also:
        AparapiException, -Serialized Form
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/CodeGenException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/CodeGenException.html deleted file mode 100644 index aad6c017..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/CodeGenException.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - -CodeGenException - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.exception
      -

      Class CodeGenException

      -
      -
      - -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Throwable

            -addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            CodeGenException

            -
            public CodeGenException(java.lang.String msg)
            -
          • -
          - - - -
            -
          • -

            CodeGenException

            -
            public CodeGenException(java.lang.Throwable t)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/RangeException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/RangeException.html deleted file mode 100644 index 5ab1bd78..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/RangeException.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - -RangeException - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.exception
      -

      Class RangeException

      -
      -
      - -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          RangeException(java.lang.String msg) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Throwable

            -addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            RangeException

            -
            public RangeException(java.lang.String msg)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/AparapiException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/AparapiException.html deleted file mode 100644 index 11abbbdb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/AparapiException.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.exception.AparapiException - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.exception.AparapiException

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/ClassParseException.TYPE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/ClassParseException.TYPE.html deleted file mode 100644 index 4ea9ac16..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/ClassParseException.TYPE.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.exception.ClassParseException.TYPE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.exception.ClassParseException.TYPE

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/ClassParseException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/ClassParseException.html deleted file mode 100644 index 2c7bbf1a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/ClassParseException.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.exception.ClassParseException - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.exception.ClassParseException

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/CodeGenException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/CodeGenException.html deleted file mode 100644 index 0011e98a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/CodeGenException.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.exception.CodeGenException - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.exception.CodeGenException

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/RangeException.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/RangeException.html deleted file mode 100644 index 4d032ed0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/class-use/RangeException.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.exception.RangeException - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.exception.RangeException

      -
      -
      No usage of com.amd.aparapi.internal.exception.RangeException
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-frame.html deleted file mode 100644 index 95446924..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-frame.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - -com.amd.aparapi.internal.exception - - - - -

      com.amd.aparapi.internal.exception

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-summary.html deleted file mode 100644 index 0a81fb3e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-summary.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -com.amd.aparapi.internal.exception - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.exception

      -
      -
      -
        -
      • - - - - - - - - - - - - -
        Enum Summary 
        EnumDescription
        ClassParseException.TYPE 
        -
      • -
      • - - - - - - - - - - - - - - - - - - - - - - - - -
        Exception Summary 
        ExceptionDescription
        AparapiException -
        We use AparapiException class and subclasses to wrap other - Exception classes, mainly to allow differentiation between Aparapi specific issues at runtime.
        -
        ClassParseException -
        We throw ClassParseExceptions (derived from AparapiException) if we encounter any Aparapi unfriendly - constructs.
        -
        CodeGenException 
        RangeException 
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-tree.html deleted file mode 100644 index 75d5b3e2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-tree.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -com.amd.aparapi.internal.exception Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.exception

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object - -
      • -
      -

      Enum Hierarchy

      -
        -
      • java.lang.Object -
          -
        • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) - -
        • -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-use.html deleted file mode 100644 index 270fe52d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/exception/package-use.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.exception - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.exception

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.CompoundLogicalExpressionNode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.CompoundLogicalExpressionNode.html deleted file mode 100644 index 8c39e6a7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.CompoundLogicalExpressionNode.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - -BranchSet.CompoundLogicalExpressionNode - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class BranchSet.CompoundLogicalExpressionNode

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        BranchSet
        -
        -
        -
        -
        public static class BranchSet.CompoundLogicalExpressionNode
        -extends BranchSet.LogicalExpressionNode
        -
        A node in the expression tree representing a simple logical expression. - - For example (i<3 || i>10) in the following would appear as a CompoundLogicalExpressionNode
        -
        
        - if (i<3 || i>10){}
        - 
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.LogicalExpressionNode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.LogicalExpressionNode.html deleted file mode 100644 index b398d936..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.LogicalExpressionNode.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - -BranchSet.LogicalExpressionNode - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class BranchSet.LogicalExpressionNode

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.SimpleLogicalExpressionNode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.SimpleLogicalExpressionNode.html deleted file mode 100644 index c3eb0dd7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.SimpleLogicalExpressionNode.html +++ /dev/null @@ -1,344 +0,0 @@ - - - - - -BranchSet.SimpleLogicalExpressionNode - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class BranchSet.SimpleLogicalExpressionNode

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        BranchSet
        -
        -
        -
        -
        public static class BranchSet.SimpleLogicalExpressionNode
        -extends BranchSet.LogicalExpressionNode
        -
        A node in the expression tree representing a simple logical expression. - - For example (i<3) in the following would appear as a SimpleLogicalExpressionNode
        -
        
        - if (i<3){}
        - 
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.html deleted file mode 100644 index 22faced8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/BranchSet.html +++ /dev/null @@ -1,423 +0,0 @@ - - - - - -BranchSet - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class BranchSet

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.BranchSet
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class BranchSet
        -extends java.lang.Object
        -
        Deals with the issue of recognizing that a sequence of bytecode branch instructions actually represent a single if/while with a logical expression. - -

        - A logical expressions such as -

        
        -      if (i>= 0 && i%2 == 0 && i<100){}
        - 
        - gets translated into a sequence of bytecode level branches and targets. Which might look like the following. -
        
        -   a: if ? e      +
        -   b: if ? d      |+
        -   c: if ? e      ||+
        -   d: if ? out    |v|+
        -   e: ...         v v|
        -      ...            |
        - out: _instruction   v
        - 
        - We need an algorithm for recognizing the underlying logical expression. -

        - Essentially, given a set of branches, get the longest sequential sequence including the input set which target each other or _target. - - Branches can legally branch to another in the valid set, or to the fall through of the last in the valid set or to _target -

        - So an

        if(COND){IF_INSTRUCTIONS}else{ELSE_INSTUCTIONS}...
        will be -
         
        -       branch[?? branch]*, instructions*,goto,instruction*,target
        -
        - and
        if(COND){IF_INSTRUCTIONS}...
        will be :- -
        -       branch[?? branch]*,instruction*,target
        -
        - The psuedo code code the algorithm looks like this: -
        -   int n=0;
        -   while (exp.length >1){
        -     if (exp[n].target == exp[n+1].target){          #rule 1
        -      replace exp[n] and exp[n+1] with a single expression representing 'exp[n] || exp[n+1]'
        -      n=0;
        -     }else if (exp[n].target == exp[n+1].next){      #rule 2
        -      replace exp[n] and exp[n+1] with a single expression representing '!(exp[n]) && exp[n+1]
        -      n=0;
        -     }else{                                          #rule 3
        -      n++;
        -     }
        -   }
        -
        -   result = !exp[0];
        -
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/ExpressionList.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/ExpressionList.html deleted file mode 100644 index ffb28832..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/ExpressionList.html +++ /dev/null @@ -1,581 +0,0 @@ - - - - - -ExpressionList - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class ExpressionList

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.ExpressionList
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class ExpressionList
        -extends java.lang.Object
        -
        Essentially a glorified linked list of Instructions plus some additional state to allow us to transform sequences. - - ExpressionLists do have the notion of a parent which allows us to clone an existing parent, allow transformations - and then possibly commit or abort the transformations at will.
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ExpressionList

            -
            public ExpressionList(MethodModel _methodModel)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            doesNotContainContinueOrBreak

            -
            public boolean doesNotContainContinueOrBreak(Instruction _start,
            -                                    Instruction _extent)
            -
            Determine whether the sequence of instructions from _start to _extent is free of branches which extend beyond _extent. - - As a side effect, if we find a possible branch it is likely a break or continue so we mark the conditional as such.
            -
            Parameters:
            _start -
            _extent -
            -
            Returns:
            -
          • -
          - - - -
            -
          • -

            doesNotContainCompositeOrBranch

            -
            public boolean doesNotContainCompositeOrBranch(Instruction _start,
            -                                      Instruction _exclusiveEnd)
            -
          • -
          - - - -
            -
          • -

            unwind

            -
            public void unwind()
            -
          • -
          - - - -
            -
          • -

            createList

            -
            public Instruction createList(Instruction _newTail)
            -
            [1] [2] [3] [4] - - Note that passing null here essentially deletes the existing expression list and returns the expression
            -
            Parameters:
            _newTail -
            -
            Returns:
            -
          • -
          - - - -
            -
          • -

            add

            -
            public Instruction add(Instruction _instruction)
            -
            Add this instruction to the end of the list.
            -
            Parameters:
            _instruction -
            -
            Returns:
            The instruction we added
            -
          • -
          - - - -
            -
          • -

            insertBetween

            -
            public void insertBetween(Instruction _prev,
            -                 Instruction _next,
            -                 Instruction _newOne)
            -
            Insert the given instruction (_newone) between the existing entries (_prev and _next).
            -
            Parameters:
            _prev -
            _next -
            _newOne -
            -
          • -
          - - - -
            -
          • -

            replaceInclusive

            -
            public void replaceInclusive(Instruction _head,
            -                    Instruction _tail,
            -                    Instruction _newOne)
            -
            Inclusive replace between _head and _tail with _newOne. - -
            -    |      | --> |       | ---> ... ---> |       | ---> |      |
            -    | prev |     | _head |               | _tail |      | next |
            -    |      | <-- |       | <--- ... <----|       | <--- |      |
            - 
            - To -
            -    |      | --> |         | ---> |      |
            -    | prev |     | _newOne |      | next |
            -    |      | <-- |         | <--- |      |
            - 
            -
          • -
          - - - -
            -
          • -

            foldComposite

            -
            public boolean foldComposite(Instruction _instruction)
            -                      throws ClassParseException
            -
            Fold headTail.tail into valid composites - -
            - if(??){then}... 
            -   ?? ?> [THEN] ...
            -       -------->
            -
            - if (??){THEN}else{ELSE}...
            - 
            -   ?? ?> [THEN] >> [ELSE] ...
            -       ------------>
            -                 -------->
            -               
            - sun for (INIT,??,DELTA){BODY} ...
            - 
            -    [INIT] ?? ?> [BODY] [DELTA] << ...
            -               ------------------>
            -            <-------------------
            -        
            - sun for (,??,DELTA){BODY} ...
            - 
            -     ?? ?> [BODY] [DELTA] << ...
            -         ------------------>
            -      <-------------------    
            -        
            - sun while (?){l} ...
            - 
            -    ?? ?> [BODY] << ...
            -        ----------->
            -     <------------
            -               
            - eclipse for (INIT,??,DELTA){BODY} ...
            -    [INIT] >> [BODY] [DELTA] ?? ?< ...
            -            ---------------->
            -              <-----------------
            -          
            - eclipse for (,??,DELTA){BODY} ...
            -    >> [BODY] [DELTA] ?? ?< ...
            -     --------------->
            -       <-----------------
            -      
            - eclipse while (??){BODY} ...
            -    >> [BODY] ?? ?< ...
            -     -------->
            -       <----------
            -
            - eclipe if (?1) { while (?2) {BODY} } else {ELSE} ...
            -    ?1 ?> >> [BODY] ?2 ?< >> [ELSE] ...
            -           --------->
            -              <---------
            -        --------------------->    
            -                           -------->   
            - 
            - sun for (,?1,DELTA){ if (?2) { THEN break; } BODY} ...
            - 
            -     ?1 ?> ?2 ?> [THEN] >> [BODY] [DELTA] << ...
            -               ----------->
            -         ---------------------------------->
            -                         ------------------>
            -     <------------------------------------ 
            -     
            - sun for (,?1,DELTA){ if (?2) { THEN continue; } BODY} ...
            - 
            -     ?1 ?> ?2 ?> THEN >> [BODY] [DELTA] << ...
            -               --------->
            -                       -------->
            -         -------------------------------->
            -     <----------------------------------     
            -           
            - Some exceptions based on sun javac optimizations
            - 
            - if (?1){ if (?2){THEN} }else{ ELSE } ...
            -   One might expect 
            -    ?1 ?> ?2 ?> [THEN] >> [ELSE] ...
            -        ----------------->
            -              -------->!         
            -                        ------------->
            -   However the conditional branch to the unconditional (!) is optimized away and instead the unconditional inverted and extended 
            -                   
            -    ?1 ?> ?2 ?> [THEN] >> [ELSE] ...
            -        ----------------->
            -              --------*--------->
            -              
            - sun if (?1) { while (?2) {l} } else {e} ...
            -   One might expect 
            -    ?1 ?> ?2 ?> [BODY] << >> [ELSE] ...
            -        ------------------->
            -              ----------->!
            -            <----------    
            -                           -------->
            -                    
            -   However as above the conditional branch to the unconditional (!) can be optimized away and the conditional inverted and extended 
            -    ?1 ?> ?2 ?> [BODY] << >> [ELSE] ...
            -        -------------------->
            -              -----------*--------->   
            -            <-----------  
            -              
            -   However we can also now remove the forward unconditional completely as it is unreachable
            -    ?1 ?> ?2 ?> [BODY] << [ELSE] ...
            -        ----------------->
            -              ------------------>   
            -            <-----------       
            -               
            - sun while(?1){if (?2) {THEN} else {ELSE} } ...
            -   One might expect 
            -    ?1 ?> ?2 ?> [BODY] >> [ELSE] << ...
            -         -------------------------->
            -           <---------------------
            -               ---------->    
            -                         ------->!
            -                    
            -   However the unconditional branch to the unconditional backbranch (!) can be optimized away and the unconditional wrapped back directly to the loop control head 
            -    ?1 ?> ?2 ?> [BODY] << [ELSE] << ...
            -         -------------------------->
            -           <---------------------
            -               ---------->    
            -           <-----------
            -
            - 
            -
            Parameters:
            _instruction -
            -
            Throws:
            -
            ClassParseException
            -
          • -
          - - - -
            -
          • -

            dumpDiagram

            -
            public java.lang.String dumpDiagram(Instruction _instruction)
            -
            Aids debugging. Creates a diagrammatic form of the roots (+ tail instruction) so that we can analyze control flow. -
            - I I I C C I U I U[I]I
            -       |---------->1
            -         |---->1
            -             |------>2
            -                 |-->2
            - 
            -
            Parameters:
            _cursor - The instruction we are looking at
            _instruction - The instruction we are considering adding (may be null)
            -
            Returns:
            -
          • -
          - - - - - - - - -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/Instruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/Instruction.html deleted file mode 100644 index 4bcc8a00..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/Instruction.html +++ /dev/null @@ -1,915 +0,0 @@ - - - - - -Instruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class Instruction

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.Instruction
        • -
        -
      • -
      - -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Detail

          - - - - - - - -
            -
          • -

            getPrevExpr

            -
            public Instruction getPrevExpr()
            -
          • -
          - - - -
            -
          • -

            getNextExpr

            -
            public Instruction getNextExpr()
            -
          • -
          - - - -
            -
          • -

            setNextPC

            -
            public void setNextPC(Instruction _nextByPC)
            -
          • -
          - - - -
            -
          • -

            setPrevPC

            -
            public void setPrevPC(Instruction _prevByPC)
            -
          • -
          - - - -
            -
          • -

            setPrevExpr

            -
            public void setPrevExpr(Instruction _prevExpr)
            -
          • -
          - - - -
            -
          • -

            setNextExpr

            -
            public void setNextExpr(Instruction _nextExpr)
            -
          • -
          - - - -
            -
          • -

            toInstruction

            -
            public Instruction toInstruction()
            -
          • -
          - - - -
            -
          • -

            getLength

            -
            public int getLength()
            -
          • -
          - - - -
            -
          • -

            setLength

            -
            public void setLength(int _length)
            -
          • -
          - - - - - - - -
            -
          • -

            getThisPC

            -
            public int getThisPC()
            -
          • -
          - - - -
            -
          • -

            getStartPC

            -
            public int getStartPC()
            -
          • -
          - - - -
            -
          • -

            getStackConsumeCount

            -
            public int getStackConsumeCount()
            -
          • -
          - - - -
            -
          • -

            getStackProduceCount

            -
            public int getStackProduceCount()
            -
          • -
          - - - -
            -
          • -

            getStackDelta

            -
            public int getStackDelta()
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          - - - -
            -
          • -

            isBranch

            -
            public boolean isBranch()
            -
          • -
          - - - -
            -
          • -

            compareTo

            -
            public int compareTo(Instruction _other)
            -
          • -
          - - - -
            -
          • -

            isAfter

            -
            public boolean isAfter(Instruction _other)
            -
          • -
          - - - -
            -
          • -

            isAfterOrEqual

            -
            public boolean isAfterOrEqual(Instruction _other)
            -
          • -
          - - - -
            -
          • -

            isBefore

            -
            public boolean isBefore(Instruction _other)
            -
          • -
          - - - -
            -
          • -

            isBeforeOrEqual

            -
            public boolean isBeforeOrEqual(Instruction _other)
            -
          • -
          - - - -
            -
          • -

            getFirstChild

            -
            public Instruction getFirstChild()
            -
          • -
          - - - -
            -
          • -

            getLastChild

            -
            public Instruction getLastChild()
            -
          • -
          - - - -
            -
          • -

            getStartInstruction

            -
            public Instruction getStartInstruction()
            -
          • -
          - - - - - - - - - - - - - - - -
            -
          • -

            setParentExpr

            -
            public void setParentExpr(Instruction _parentExpr)
            -
          • -
          - - - -
            -
          • -

            getParentExpr

            -
            public Instruction getParentExpr()
            -
          • -
          - - - -
            -
          • -

            getRootExpr

            -
            public Instruction getRootExpr()
            -
          • -
          - - - -
            -
          • -

            isReverseConditionalBranchTarget

            -
            public boolean isReverseConditionalBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isForwardConditionalBranchTarget

            -
            public boolean isForwardConditionalBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isReverseUnconditionalBranchTarget

            -
            public boolean isReverseUnconditionalBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isForwardUnconditionalBranchTarget

            -
            public boolean isForwardUnconditionalBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isReverseBranchTarget

            -
            public boolean isReverseBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isConditionalBranchTarget

            -
            public boolean isConditionalBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isUnconditionalBranchTarget

            -
            public boolean isUnconditionalBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isForwardBranchTarget

            -
            public boolean isForwardBranchTarget()
            -
          • -
          - - - -
            -
          • -

            isBranchTarget

            -
            public boolean isBranchTarget()
            -
          • -
          - - - -
            -
          • -

            producesStack

            -
            public boolean producesStack()
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            consumesStack

            -
            public boolean consumesStack()
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            getForwardUnconditionalBranches

            -
            public java.util.LinkedList<InstructionSet.Branch> getForwardUnconditionalBranches()
            -
          • -
          - - - - - - - -
            -
          • -

            getReverseUnconditionalBranches

            -
            public java.util.LinkedList<InstructionSet.Branch> getReverseUnconditionalBranches()
            -
          • -
          - - - - - - - -
            -
          • -

            isForwardBranch

            -
            public boolean isForwardBranch()
            -
          • -
          - - - -
            -
          • -

            sameAs

            -
            public boolean sameAs(Instruction _other)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.AssignableInstructionMatcher.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.AssignableInstructionMatcher.html deleted file mode 100644 index ed84f407..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.AssignableInstructionMatcher.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - -InstructionPattern.AssignableInstructionMatcher - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionPattern.AssignableInstructionMatcher

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionPattern.AssignableInstructionMatcher

            -
            public InstructionPattern.AssignableInstructionMatcher(java.lang.Class<?>... _classes)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.InstructionMatch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.InstructionMatch.html deleted file mode 100644 index afb5c38c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.InstructionMatch.html +++ /dev/null @@ -1,322 +0,0 @@ - - - - - -InstructionPattern.InstructionMatch - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionPattern.InstructionMatch

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionPattern
        -
        -
        -
        -
        public static class InstructionPattern.InstructionMatch
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.InstructionMatcher.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.InstructionMatcher.html deleted file mode 100644 index 91ef51c7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.InstructionMatcher.html +++ /dev/null @@ -1,279 +0,0 @@ - - - - - -InstructionPattern.InstructionMatcher - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionPattern.InstructionMatcher

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatcher
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.html deleted file mode 100644 index f295ed4a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionPattern.html +++ /dev/null @@ -1,525 +0,0 @@ - - - - - -InstructionPattern - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionPattern

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.InstructionPattern
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class InstructionPattern
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessArrayElement.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessArrayElement.html deleted file mode 100644 index 168f8184..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessArrayElement.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - -InstructionSet.AccessArrayElement - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.AccessArrayElement

      -
      -
      - -
      - -
      - -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessField.html deleted file mode 100644 index a13eef18..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessField.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -InstructionSet.AccessField - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.AccessField

      -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessInstanceField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessInstanceField.html deleted file mode 100644 index 629f23bd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessInstanceField.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -InstructionSet.AccessInstanceField - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.AccessInstanceField

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessLocalVariable.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessLocalVariable.html deleted file mode 100644 index 72575281..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AccessLocalVariable.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -InstructionSet.AccessLocalVariable - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.AccessLocalVariable

      -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ArrayAccess.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ArrayAccess.html deleted file mode 100644 index edc3eb97..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ArrayAccess.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - -InstructionSet.ArrayAccess - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.ArrayAccess

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToArrayElement.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToArrayElement.html deleted file mode 100644 index d546f7c6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToArrayElement.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - -InstructionSet.AssignToArrayElement - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.AssignToArrayElement

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToField.html deleted file mode 100644 index eea98da2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToField.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - -InstructionSet.AssignToField - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.AssignToField

      -
      -
      -
      - -
      -
      - -
      -
      -
        -
      • - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToInstanceField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToInstanceField.html deleted file mode 100644 index 23c32ed5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToInstanceField.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - -InstructionSet.AssignToInstanceField - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.AssignToInstanceField

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToLocalVariable.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToLocalVariable.html deleted file mode 100644 index efa41ac3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.AssignToLocalVariable.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -InstructionSet.AssignToLocalVariable - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.AssignToLocalVariable

      -
      - - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Binary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Binary.html deleted file mode 100644 index 12dabb15..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Binary.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - -InstructionSet.Binary - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.Binary

      -
      -
      - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.BinaryOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.BinaryOperator.html deleted file mode 100644 index b2fd3621..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.BinaryOperator.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - - -InstructionSet.BinaryOperator - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.BinaryOperator

      -
      -
      - - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Branch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Branch.html deleted file mode 100644 index b7de9085..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Branch.html +++ /dev/null @@ -1,480 +0,0 @@ - - - - - -InstructionSet.Branch - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Branch

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getAbsolute

            -
            public int getAbsolute()
            -
          • -
          - - - - - - - -
            -
          • -

            setTarget

            -
            public void setTarget(Instruction _target)
            -
          • -
          - - - -
            -
          • -

            isConditional

            -
            public boolean isConditional()
            -
          • -
          - - - -
            -
          • -

            isUnconditional

            -
            public boolean isUnconditional()
            -
          • -
          - - - -
            -
          • -

            isReverseConditional

            -
            public boolean isReverseConditional()
            -
          • -
          - - - -
            -
          • -

            isForwardConditional

            -
            public boolean isForwardConditional()
            -
          • -
          - - - -
            -
          • -

            isReverseUnconditional

            -
            public boolean isReverseUnconditional()
            -
          • -
          - - - -
            -
          • -

            isForwardUnconditional

            -
            public boolean isForwardUnconditional()
            -
          • -
          - - - -
            -
          • -

            isReverse

            -
            public boolean isReverse()
            -
          • -
          - - - -
            -
          • -

            isForward

            -
            public boolean isForward()
            -
          • -
          - - - -
            -
          • -

            unhook

            -
            public void unhook()
            -
          • -
          - - - -
            -
          • -

            setBreakOrContinue

            -
            public void setBreakOrContinue(boolean b)
            -
          • -
          - - - -
            -
          • -

            isBreakOrContinue

            -
            public boolean isBreakOrContinue()
            -
          • -
          - - - -
            -
          • -

            retarget

            -
            public void retarget(Instruction _newTarget)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Branch32.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Branch32.html deleted file mode 100644 index f4de09cb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Branch32.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - -InstructionSet.Branch32 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Branch32

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ByteCode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ByteCode.html deleted file mode 100644 index 3fcf2948..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ByteCode.html +++ /dev/null @@ -1,3701 +0,0 @@ - - - - - -InstructionSet.ByteCode - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Enum InstructionSet.ByteCode

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.BytecodeEncodedConstant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.BytecodeEncodedConstant.html deleted file mode 100644 index 4b23b7f1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.BytecodeEncodedConstant.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - -InstructionSet.BytecodeEncodedConstant - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.BytecodeEncodedConstant<T>

      -
      -
      - - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CastOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CastOperator.html deleted file mode 100644 index ab5c236f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CastOperator.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - -InstructionSet.CastOperator - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CastOperator

      -
      -
      - - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CloneInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CloneInstruction.html deleted file mode 100644 index d7d67a66..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CloneInstruction.html +++ /dev/null @@ -1,325 +0,0 @@ - - - - - -InstructionSet.CloneInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CloneInstruction

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeArbitraryScopeInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeArbitraryScopeInstruction.html deleted file mode 100644 index 70c47d02..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeArbitraryScopeInstruction.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - -InstructionSet.CompositeArbitraryScopeInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeArbitraryScopeInstruction

      -
      -
      - -
      - -
      - -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeEmptyLoopInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeEmptyLoopInstruction.html deleted file mode 100644 index b7a8f361..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeEmptyLoopInstruction.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -InstructionSet.CompositeEmptyLoopInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeEmptyLoopInstruction

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeForEclipseInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeForEclipseInstruction.html deleted file mode 100644 index 71f3e24f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeForEclipseInstruction.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - -InstructionSet.CompositeForEclipseInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeForEclipseInstruction

      -
      -
      - -
      - -
      - -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeForSunInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeForSunInstruction.html deleted file mode 100644 index 5c654945..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeForSunInstruction.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -InstructionSet.CompositeForSunInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeForSunInstruction

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeIfElseInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeIfElseInstruction.html deleted file mode 100644 index 1605eeb8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeIfElseInstruction.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -InstructionSet.CompositeIfElseInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeIfElseInstruction

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeIfInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeIfInstruction.html deleted file mode 100644 index c0de98dd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeIfInstruction.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -InstructionSet.CompositeIfInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeIfInstruction

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeInstruction.html deleted file mode 100644 index 0a1992b3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeInstruction.html +++ /dev/null @@ -1,352 +0,0 @@ - - - - - -InstructionSet.CompositeInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeInstruction

      -
      -
      - - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeWhileInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeWhileInstruction.html deleted file mode 100644 index 97a337be..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.CompositeWhileInstruction.html +++ /dev/null @@ -1,262 +0,0 @@ - - - - - -InstructionSet.CompositeWhileInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.CompositeWhileInstruction

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConditionalBranch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConditionalBranch.html deleted file mode 100644 index d5f9cea2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConditionalBranch.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - -InstructionSet.ConditionalBranch - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.ConditionalBranch

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConditionalBranch16.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConditionalBranch16.html deleted file mode 100644 index 32fe528e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConditionalBranch16.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - -InstructionSet.ConditionalBranch16 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.ConditionalBranch16

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Constant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Constant.html deleted file mode 100644 index 64af37f2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Constant.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -InstructionSet.Constant - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.Constant<T>

      -
      - - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConstantPoolEntryConstant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConstantPoolEntryConstant.html deleted file mode 100644 index bab3ee3a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ConstantPoolEntryConstant.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - - -InstructionSet.ConstantPoolEntryConstant - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.ConstantPoolEntryConstant

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.DUP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.DUP.html deleted file mode 100644 index 76f00936..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.DUP.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - -InstructionSet.DUP - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.DUP

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FakeGoto.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FakeGoto.html deleted file mode 100644 index 165ed350..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FakeGoto.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -InstructionSet.FakeGoto - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.FakeGoto

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.FakeGoto

            -
            public InstructionSet.FakeGoto(MethodModel _methodPoolEntry,
            -                       Instruction _target)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldArrayElementAssign.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldArrayElementAssign.html deleted file mode 100644 index f60f2fd5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldArrayElementAssign.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - -InstructionSet.FieldArrayElementAssign - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.FieldArrayElementAssign

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionSet
        -
        -
        -
        -
        public static class InstructionSet.FieldArrayElementAssign
        -extends Instruction
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldArrayElementIncrement.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldArrayElementIncrement.html deleted file mode 100644 index b8cffe20..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldArrayElementIncrement.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - -InstructionSet.FieldArrayElementIncrement - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.FieldArrayElementIncrement

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionSet
        -
        -
        -
        -
        public static class InstructionSet.FieldArrayElementIncrement
        -extends Instruction
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - - - - - -
            -
          • -

            isPre

            -
            public boolean isPre()
            -
          • -
          - - - -
            -
          • -

            isInc

            -
            public boolean isInc()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldReference.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldReference.html deleted file mode 100644 index f8aa2cfd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.FieldReference.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - -InstructionSet.FieldReference - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.FieldReference

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.HasOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.HasOperator.html deleted file mode 100644 index 3b1afb99..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.HasOperator.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -InstructionSet.HasOperator - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.HasOperator

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_AALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_AALOAD.html deleted file mode 100644 index 70095ced..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_AALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_AALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_AALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_AALOAD

            -
            public InstructionSet.I_AALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_AASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_AASTORE.html deleted file mode 100644 index db01d8bc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_AASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_AASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_AASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_AASTORE

            -
            public InstructionSet.I_AASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ACONST_NULL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ACONST_NULL.html deleted file mode 100644 index 27c1c28d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ACONST_NULL.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - -InstructionSet.I_ACONST_NULL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ACONST_NULL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ACONST_NULL

            -
            public InstructionSet.I_ACONST_NULL(MethodModel _methodPoolEntry,
            -                            ByteReader _byteReader,
            -                            boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - - -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD.html deleted file mode 100644 index 29c79276..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ALOAD

            -
            public InstructionSet.I_ALOAD(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_0.html deleted file mode 100644 index ad0e1187..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_0.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ALOAD_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ALOAD_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ALOAD_0

            -
            public InstructionSet.I_ALOAD_0(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_1.html deleted file mode 100644 index b32bdea8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_1.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ALOAD_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ALOAD_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ALOAD_1

            -
            public InstructionSet.I_ALOAD_1(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_2.html deleted file mode 100644 index 39dcc8cc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_2.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ALOAD_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ALOAD_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ALOAD_2

            -
            public InstructionSet.I_ALOAD_2(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_3.html deleted file mode 100644 index 5a4b8695..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ALOAD_3.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ALOAD_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ALOAD_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ALOAD_3

            -
            public InstructionSet.I_ALOAD_3(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ANEWARRAY.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ANEWARRAY.html deleted file mode 100644 index 527c4386..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ANEWARRAY.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -InstructionSet.I_ANEWARRAY - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ANEWARRAY

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ANEWARRAY

            -
            public InstructionSet.I_ANEWARRAY(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ARETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ARETURN.html deleted file mode 100644 index b8ca9dcc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ARETURN.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_ARETURN - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ARETURN

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ARETURN

            -
            public InstructionSet.I_ARETURN(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ARRAYLENGTH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ARRAYLENGTH.html deleted file mode 100644 index a67f157f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ARRAYLENGTH.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_ARRAYLENGTH - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ARRAYLENGTH

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ARRAYLENGTH

            -
            public InstructionSet.I_ARRAYLENGTH(MethodModel _methodPoolEntry,
            -                            ByteReader _byteReader,
            -                            boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE.html deleted file mode 100644 index 5b0df3a4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ASTORE

            -
            public InstructionSet.I_ASTORE(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_0.html deleted file mode 100644 index 7e11bfb0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_0.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ASTORE_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ASTORE_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ASTORE_0

            -
            public InstructionSet.I_ASTORE_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_1.html deleted file mode 100644 index 2b1a8c6f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_1.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ASTORE_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ASTORE_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ASTORE_1

            -
            public InstructionSet.I_ASTORE_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_2.html deleted file mode 100644 index c04470eb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_2.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ASTORE_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ASTORE_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ASTORE_2

            -
            public InstructionSet.I_ASTORE_2(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_3.html deleted file mode 100644 index 785e5dc6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ASTORE_3.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ASTORE_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ASTORE_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ASTORE_3

            -
            public InstructionSet.I_ASTORE_3(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ATHROW.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ATHROW.html deleted file mode 100644 index 5c08d5c5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ATHROW.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_ATHROW - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ATHROW

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ATHROW

            -
            public InstructionSet.I_ATHROW(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BALOAD.html deleted file mode 100644 index 02412925..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_BALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_BALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_BALOAD

            -
            public InstructionSet.I_BALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BASTORE.html deleted file mode 100644 index 96729b0c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_BASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_BASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_BASTORE

            -
            public InstructionSet.I_BASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BIPUSH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BIPUSH.html deleted file mode 100644 index 4e104af9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_BIPUSH.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - -InstructionSet.I_BIPUSH - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_BIPUSH

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CALOAD.html deleted file mode 100644 index 94e16480..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_CALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_CALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_CALOAD

            -
            public InstructionSet.I_CALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CASTORE.html deleted file mode 100644 index 14a4759a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_CASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_CASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_CASTORE

            -
            public InstructionSet.I_CASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CHECKCAST.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CHECKCAST.html deleted file mode 100644 index 23627d94..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_CHECKCAST.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_CHECKCAST - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_CHECKCAST

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_CHECKCAST

            -
            public InstructionSet.I_CHECKCAST(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2F.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2F.html deleted file mode 100644 index fb102d13..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2F.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_D2F - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_D2F

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_D2F

            -
            public InstructionSet.I_D2F(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2I.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2I.html deleted file mode 100644 index 269d1e32..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2I.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_D2I - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_D2I

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_D2I

            -
            public InstructionSet.I_D2I(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2L.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2L.html deleted file mode 100644 index 5da10062..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_D2L.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_D2L - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_D2L

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_D2L

            -
            public InstructionSet.I_D2L(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DADD.html deleted file mode 100644 index 60c7c6e7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DADD.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_DADD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DADD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DADD

            -
            public InstructionSet.I_DADD(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DALOAD.html deleted file mode 100644 index 3c88fa7c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_DALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DALOAD

            -
            public InstructionSet.I_DALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DASTORE.html deleted file mode 100644 index 391967eb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_DASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DASTORE

            -
            public InstructionSet.I_DASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCMPG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCMPG.html deleted file mode 100644 index df064d81..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCMPG.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_DCMPG - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DCMPG

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DCMPG

            -
            public InstructionSet.I_DCMPG(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCMPL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCMPL.html deleted file mode 100644 index 6fa5b4e3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCMPL.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_DCMPL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DCMPL

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DCMPL

            -
            public InstructionSet.I_DCMPL(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCONST_0.html deleted file mode 100644 index 70eac57c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCONST_0.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_DCONST_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DCONST_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DCONST_0

            -
            public InstructionSet.I_DCONST_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCONST_1.html deleted file mode 100644 index 07f286a7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DCONST_1.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_DCONST_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DCONST_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DCONST_1

            -
            public InstructionSet.I_DCONST_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DDIV.html deleted file mode 100644 index df5d470e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DDIV.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_DDIV - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DDIV

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DDIV

            -
            public InstructionSet.I_DDIV(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD.html deleted file mode 100644 index b6dad776..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_DLOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DLOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DLOAD

            -
            public InstructionSet.I_DLOAD(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_0.html deleted file mode 100644 index adfac9d0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_0.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_DLOAD_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DLOAD_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DLOAD_0

            -
            public InstructionSet.I_DLOAD_0(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_1.html deleted file mode 100644 index 25d73d9d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_1.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_DLOAD_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DLOAD_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DLOAD_1

            -
            public InstructionSet.I_DLOAD_1(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_2.html deleted file mode 100644 index a993fcd8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_2.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_DLOAD_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DLOAD_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DLOAD_2

            -
            public InstructionSet.I_DLOAD_2(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_3.html deleted file mode 100644 index 000c1c65..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DLOAD_3.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_DLOAD_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DLOAD_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DLOAD_3

            -
            public InstructionSet.I_DLOAD_3(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DMUL.html deleted file mode 100644 index db522495..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DMUL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_DMUL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DMUL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DMUL

            -
            public InstructionSet.I_DMUL(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DNEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DNEG.html deleted file mode 100644 index 2bc133c1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DNEG.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_DNEG - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DNEG

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DNEG

            -
            public InstructionSet.I_DNEG(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DREM.html deleted file mode 100644 index e5742e1a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DREM.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_DREM - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DREM

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DREM

            -
            public InstructionSet.I_DREM(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DRETURN.html deleted file mode 100644 index 0ea7d843..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DRETURN.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DRETURN - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DRETURN

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DRETURN

            -
            public InstructionSet.I_DRETURN(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE.html deleted file mode 100644 index 3c888568..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_DSTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DSTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DSTORE

            -
            public InstructionSet.I_DSTORE(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_0.html deleted file mode 100644 index 89baf1b1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_0.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_DSTORE_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DSTORE_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DSTORE_0

            -
            public InstructionSet.I_DSTORE_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_1.html deleted file mode 100644 index a523345a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_1.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_DSTORE_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DSTORE_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DSTORE_1

            -
            public InstructionSet.I_DSTORE_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_2.html deleted file mode 100644 index beb775ca..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_2.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_DSTORE_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DSTORE_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DSTORE_2

            -
            public InstructionSet.I_DSTORE_2(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_3.html deleted file mode 100644 index b88339b0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSTORE_3.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_DSTORE_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DSTORE_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DSTORE_3

            -
            public InstructionSet.I_DSTORE_3(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSUB.html deleted file mode 100644 index 0c16b5ad..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DSUB.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_DSUB - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DSUB

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DSUB

            -
            public InstructionSet.I_DSUB(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP.html deleted file mode 100644 index 76770b54..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DUP - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DUP

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DUP

            -
            public InstructionSet.I_DUP(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2.html deleted file mode 100644 index 63486ca1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DUP2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DUP2

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DUP2

            -
            public InstructionSet.I_DUP2(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2_X1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2_X1.html deleted file mode 100644 index a74e9bcb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2_X1.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DUP2_X1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DUP2_X1

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DUP2_X1

            -
            public InstructionSet.I_DUP2_X1(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2_X2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2_X2.html deleted file mode 100644 index 5c277ae0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP2_X2.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DUP2_X2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DUP2_X2

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DUP2_X2

            -
            public InstructionSet.I_DUP2_X2(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP_X1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP_X1.html deleted file mode 100644 index a247e945..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP_X1.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DUP_X1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DUP_X1

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DUP_X1

            -
            public InstructionSet.I_DUP_X1(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP_X2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP_X2.html deleted file mode 100644 index bc4ca6e6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_DUP_X2.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_DUP_X2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_DUP_X2

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_DUP_X2

            -
            public InstructionSet.I_DUP_X2(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_END.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_END.html deleted file mode 100644 index 5658c8db..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_END.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -InstructionSet.I_END - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_END

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_END

            -
            public InstructionSet.I_END(MethodModel method,
            -                    int _pc)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2D.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2D.html deleted file mode 100644 index 75b30605..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2D.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_F2D - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_F2D

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_F2D

            -
            public InstructionSet.I_F2D(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2I.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2I.html deleted file mode 100644 index 30612e06..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2I.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_F2I - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_F2I

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_F2I

            -
            public InstructionSet.I_F2I(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2L.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2L.html deleted file mode 100644 index fe30ef6c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_F2L.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_F2L - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_F2L

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_F2L

            -
            public InstructionSet.I_F2L(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FADD.html deleted file mode 100644 index 0b953eb2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FADD.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FADD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FADD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FADD

            -
            public InstructionSet.I_FADD(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FALOAD.html deleted file mode 100644 index f1a06f93..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_FALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FALOAD

            -
            public InstructionSet.I_FALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FASTORE.html deleted file mode 100644 index 4e197e1c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_FASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FASTORE

            -
            public InstructionSet.I_FASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCMPG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCMPG.html deleted file mode 100644 index fead6b95..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCMPG.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FCMPG - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FCMPG

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FCMPG

            -
            public InstructionSet.I_FCMPG(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCMPL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCMPL.html deleted file mode 100644 index 5176997e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCMPL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FCMPL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FCMPL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FCMPL

            -
            public InstructionSet.I_FCMPL(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_0.html deleted file mode 100644 index f4147f08..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_0.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_FCONST_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FCONST_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FCONST_0

            -
            public InstructionSet.I_FCONST_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_1.html deleted file mode 100644 index cde3c02c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_1.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_FCONST_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FCONST_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FCONST_1

            -
            public InstructionSet.I_FCONST_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_2.html deleted file mode 100644 index e51b07c0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FCONST_2.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_FCONST_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FCONST_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FCONST_2

            -
            public InstructionSet.I_FCONST_2(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FDIV.html deleted file mode 100644 index 7df033d2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FDIV.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FDIV - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FDIV

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FDIV

            -
            public InstructionSet.I_FDIV(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD.html deleted file mode 100644 index 1a30c8e0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_FLOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FLOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FLOAD

            -
            public InstructionSet.I_FLOAD(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_0.html deleted file mode 100644 index 2a8d240c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_0.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_FLOAD_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FLOAD_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FLOAD_0

            -
            public InstructionSet.I_FLOAD_0(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_1.html deleted file mode 100644 index 1ceee6b3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_1.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_FLOAD_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FLOAD_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FLOAD_1

            -
            public InstructionSet.I_FLOAD_1(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_2.html deleted file mode 100644 index 6d93ac6b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_2.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_FLOAD_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FLOAD_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FLOAD_2

            -
            public InstructionSet.I_FLOAD_2(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_3.html deleted file mode 100644 index ca7e31c3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FLOAD_3.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_FLOAD_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FLOAD_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FLOAD_3

            -
            public InstructionSet.I_FLOAD_3(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FMUL.html deleted file mode 100644 index 0cf3c609..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FMUL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FMUL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FMUL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FMUL

            -
            public InstructionSet.I_FMUL(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FNEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FNEG.html deleted file mode 100644 index 79c90afb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FNEG.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FNEG - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FNEG

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FNEG

            -
            public InstructionSet.I_FNEG(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FREM.html deleted file mode 100644 index 15736c3c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FREM.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FREM - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FREM

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FREM

            -
            public InstructionSet.I_FREM(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FRETURN.html deleted file mode 100644 index babdf63e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FRETURN.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_FRETURN - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FRETURN

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FRETURN

            -
            public InstructionSet.I_FRETURN(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE.html deleted file mode 100644 index 3fd33e05..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_FSTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FSTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FSTORE

            -
            public InstructionSet.I_FSTORE(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_0.html deleted file mode 100644 index 3e776541..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_0.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_FSTORE_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FSTORE_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FSTORE_0

            -
            public InstructionSet.I_FSTORE_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_1.html deleted file mode 100644 index 3433f7cb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_1.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_FSTORE_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FSTORE_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FSTORE_1

            -
            public InstructionSet.I_FSTORE_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_2.html deleted file mode 100644 index bdcd4832..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_2.html +++ /dev/null @@ -1,249 +0,0 @@ - - - - - -InstructionSet.I_FSTORE_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FSTORE_2

      -
      -
      - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_3.html deleted file mode 100644 index aa3b633b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSTORE_3.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_FSTORE_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FSTORE_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FSTORE_3

            -
            public InstructionSet.I_FSTORE_3(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSUB.html deleted file mode 100644 index b82d5da8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_FSUB.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_FSUB - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_FSUB

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_FSUB

            -
            public InstructionSet.I_FSUB(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GETFIELD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GETFIELD.html deleted file mode 100644 index 68e5ebfc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GETFIELD.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - -InstructionSet.I_GETFIELD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_GETFIELD

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GETSTATIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GETSTATIC.html deleted file mode 100644 index f2a3b31b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GETSTATIC.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - -InstructionSet.I_GETSTATIC - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_GETSTATIC

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GOTO.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GOTO.html deleted file mode 100644 index b2a91f88..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GOTO.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - -InstructionSet.I_GOTO - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_GOTO

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_GOTO

            -
            public InstructionSet.I_GOTO(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GOTO_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GOTO_W.html deleted file mode 100644 index 978bb6c5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_GOTO_W.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - -InstructionSet.I_GOTO_W - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_GOTO_W

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_GOTO_W

            -
            public InstructionSet.I_GOTO_W(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2B.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2B.html deleted file mode 100644 index 9f37f1ac..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2B.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_I2B - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_I2B

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_I2B

            -
            public InstructionSet.I_I2B(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2C.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2C.html deleted file mode 100644 index 02699620..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2C.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_I2C - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_I2C

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_I2C

            -
            public InstructionSet.I_I2C(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2D.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2D.html deleted file mode 100644 index ed91f6d5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2D.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_I2D - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_I2D

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_I2D

            -
            public InstructionSet.I_I2D(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2F.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2F.html deleted file mode 100644 index e6fc787a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2F.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_I2F - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_I2F

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_I2F

            -
            public InstructionSet.I_I2F(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2L.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2L.html deleted file mode 100644 index 47a27944..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2L.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_I2L - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_I2L

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_I2L

            -
            public InstructionSet.I_I2L(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2S.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2S.html deleted file mode 100644 index e627c69c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_I2S.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_I2S - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_I2S

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_I2S

            -
            public InstructionSet.I_I2S(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IADD.html deleted file mode 100644 index eada5e32..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IADD.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IADD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IADD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IADD

            -
            public InstructionSet.I_IADD(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IALOAD.html deleted file mode 100644 index 6b1eccae..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_IALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IALOAD

            -
            public InstructionSet.I_IALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IAND.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IAND.html deleted file mode 100644 index c32d2867..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IAND.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IAND - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IAND

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IAND

            -
            public InstructionSet.I_IAND(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IASTORE.html deleted file mode 100644 index a16bd128..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_IASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IASTORE

            -
            public InstructionSet.I_IASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_0.html deleted file mode 100644 index 18c79b0e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_0.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_0

            -
            public InstructionSet.I_ICONST_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_1.html deleted file mode 100644 index 1329c40a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_1.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_1

            -
            public InstructionSet.I_ICONST_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_2.html deleted file mode 100644 index 916a4f61..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_2.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_2

            -
            public InstructionSet.I_ICONST_2(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_3.html deleted file mode 100644 index 44407e6f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_3.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_3

            -
            public InstructionSet.I_ICONST_3(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_4.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_4.html deleted file mode 100644 index 9b096ed1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_4.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_4 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_4

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_4

            -
            public InstructionSet.I_ICONST_4(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_5.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_5.html deleted file mode 100644 index 67cb04dd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_5.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_5 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_5

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_5

            -
            public InstructionSet.I_ICONST_5(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_M1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_M1.html deleted file mode 100644 index 2c2f5061..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ICONST_M1.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_ICONST_M1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ICONST_M1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ICONST_M1

            -
            public InstructionSet.I_ICONST_M1(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IDIV.html deleted file mode 100644 index 9f0317e6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IDIV.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IDIV - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IDIV

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IDIV

            -
            public InstructionSet.I_IDIV(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFEQ.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFEQ.html deleted file mode 100644 index 77cbbbce..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFEQ.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IFEQ - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFEQ

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFEQ

            -
            public InstructionSet.I_IFEQ(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFGE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFGE.html deleted file mode 100644 index 0fa41542..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFGE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IFGE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFGE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFGE

            -
            public InstructionSet.I_IFGE(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFGT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFGT.html deleted file mode 100644 index cc246a92..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFGT.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IFGT - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFGT

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFGT

            -
            public InstructionSet.I_IFGT(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFLE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFLE.html deleted file mode 100644 index a65cadc7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFLE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IFLE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFLE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFLE

            -
            public InstructionSet.I_IFLE(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFLT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFLT.html deleted file mode 100644 index 4aa3e7ad..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFLT.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IFLT - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFLT

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFLT

            -
            public InstructionSet.I_IFLT(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNE.html deleted file mode 100644 index fb33e580..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IFNE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFNE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFNE

            -
            public InstructionSet.I_IFNE(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNONNULL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNONNULL.html deleted file mode 100644 index c64e61eb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNONNULL.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_IFNONNULL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFNONNULL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFNONNULL

            -
            public InstructionSet.I_IFNONNULL(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNULL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNULL.html deleted file mode 100644 index 5dd00219..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IFNULL.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_IFNULL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IFNULL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IFNULL

            -
            public InstructionSet.I_IFNULL(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ACMPEQ.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ACMPEQ.html deleted file mode 100644 index 8752588e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ACMPEQ.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ACMPEQ - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ACMPEQ

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ACMPEQ

            -
            public InstructionSet.I_IF_ACMPEQ(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ACMPNE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ACMPNE.html deleted file mode 100644 index ea427b8b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ACMPNE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ACMPNE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ACMPNE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ACMPNE

            -
            public InstructionSet.I_IF_ACMPNE(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPEQ.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPEQ.html deleted file mode 100644 index b0e9b1d0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPEQ.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ICMPEQ - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ICMPEQ

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ICMPEQ

            -
            public InstructionSet.I_IF_ICMPEQ(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPGE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPGE.html deleted file mode 100644 index c4ad38a1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPGE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ICMPGE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ICMPGE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ICMPGE

            -
            public InstructionSet.I_IF_ICMPGE(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPGT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPGT.html deleted file mode 100644 index 00af629f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPGT.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ICMPGT - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ICMPGT

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ICMPGT

            -
            public InstructionSet.I_IF_ICMPGT(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPLE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPLE.html deleted file mode 100644 index f7c3f5ea..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPLE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ICMPLE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ICMPLE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ICMPLE

            -
            public InstructionSet.I_IF_ICMPLE(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPLT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPLT.html deleted file mode 100644 index 3013b300..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPLT.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ICMPLT - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ICMPLT

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ICMPLT

            -
            public InstructionSet.I_IF_ICMPLT(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPNE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPNE.html deleted file mode 100644 index 76f433b5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IF_ICMPNE.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.I_IF_ICMPNE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IF_ICMPNE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IF_ICMPNE

            -
            public InstructionSet.I_IF_ICMPNE(MethodModel _methodPoolEntry,
            -                          ByteReader _byteReader,
            -                          boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IINC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IINC.html deleted file mode 100644 index b8b6f1b6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IINC.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - -InstructionSet.I_IINC - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IINC

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IINC

            -
            public InstructionSet.I_IINC(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD.html deleted file mode 100644 index 0b050af9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ILOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ILOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ILOAD

            -
            public InstructionSet.I_ILOAD(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_0.html deleted file mode 100644 index 190182b9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_0.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ILOAD_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ILOAD_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ILOAD_0

            -
            public InstructionSet.I_ILOAD_0(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_1.html deleted file mode 100644 index 0f05de4b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_1.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ILOAD_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ILOAD_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ILOAD_1

            -
            public InstructionSet.I_ILOAD_1(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_2.html deleted file mode 100644 index 0e4204f1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_2.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ILOAD_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ILOAD_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ILOAD_2

            -
            public InstructionSet.I_ILOAD_2(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_3.html deleted file mode 100644 index 7d0a58ee..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ILOAD_3.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_ILOAD_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ILOAD_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ILOAD_3

            -
            public InstructionSet.I_ILOAD_3(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IMUL.html deleted file mode 100644 index d2210ce8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IMUL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IMUL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IMUL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IMUL

            -
            public InstructionSet.I_IMUL(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INEG.html deleted file mode 100644 index 7fbe1f6e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INEG.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_INEG - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INEG

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_INEG

            -
            public InstructionSet.I_INEG(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INSTANCEOF.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INSTANCEOF.html deleted file mode 100644 index b26e9107..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INSTANCEOF.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_INSTANCEOF - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INSTANCEOF

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_INSTANCEOF

            -
            public InstructionSet.I_INSTANCEOF(MethodModel _methodPoolEntry,
            -                           ByteReader _byteReader,
            -                           boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEDYNAMIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEDYNAMIC.html deleted file mode 100644 index 290395ff..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEDYNAMIC.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - -InstructionSet.I_INVOKEDYNAMIC - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INVOKEDYNAMIC

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEINTERFACE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEINTERFACE.html deleted file mode 100644 index dcc09345..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEINTERFACE.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - -InstructionSet.I_INVOKEINTERFACE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INVOKEINTERFACE

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKESPECIAL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKESPECIAL.html deleted file mode 100644 index 916040e3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKESPECIAL.html +++ /dev/null @@ -1,393 +0,0 @@ - - - - - -InstructionSet.I_INVOKESPECIAL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INVOKESPECIAL

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKESTATIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKESTATIC.html deleted file mode 100644 index c1d95cd1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKESTATIC.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - -InstructionSet.I_INVOKESTATIC - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INVOKESTATIC

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEVIRTUAL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEVIRTUAL.html deleted file mode 100644 index 5453ab6c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_INVOKEVIRTUAL.html +++ /dev/null @@ -1,393 +0,0 @@ - - - - - -InstructionSet.I_INVOKEVIRTUAL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_INVOKEVIRTUAL

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IOR.html deleted file mode 100644 index 28587299..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IOR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IOR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IOR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IOR

            -
            public InstructionSet.I_IOR(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IREM.html deleted file mode 100644 index bff20b54..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IREM.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IREM - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IREM

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IREM

            -
            public InstructionSet.I_IREM(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IRETURN.html deleted file mode 100644 index d52f6be2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IRETURN.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_IRETURN - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IRETURN

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IRETURN

            -
            public InstructionSet.I_IRETURN(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISHL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISHL.html deleted file mode 100644 index 3f569249..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISHL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_ISHL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISHL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISHL

            -
            public InstructionSet.I_ISHL(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISHR.html deleted file mode 100644 index 3019ea8b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISHR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_ISHR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISHR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISHR

            -
            public InstructionSet.I_ISHR(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE.html deleted file mode 100644 index d0eca88d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ISTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISTORE

            -
            public InstructionSet.I_ISTORE(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_0.html deleted file mode 100644 index cfbc75ba..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_0.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ISTORE_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISTORE_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISTORE_0

            -
            public InstructionSet.I_ISTORE_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_1.html deleted file mode 100644 index 19fd491a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_1.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ISTORE_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISTORE_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISTORE_1

            -
            public InstructionSet.I_ISTORE_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_2.html deleted file mode 100644 index 03839e6b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_2.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ISTORE_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISTORE_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISTORE_2

            -
            public InstructionSet.I_ISTORE_2(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_3.html deleted file mode 100644 index 9dc3c77f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISTORE_3.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_ISTORE_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISTORE_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISTORE_3

            -
            public InstructionSet.I_ISTORE_3(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISUB.html deleted file mode 100644 index 96c154fa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_ISUB.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_ISUB - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_ISUB

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_ISUB

            -
            public InstructionSet.I_ISUB(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IUSHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IUSHR.html deleted file mode 100644 index 3aa7ce8f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IUSHR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IUSHR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IUSHR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IUSHR

            -
            public InstructionSet.I_IUSHR(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IXOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IXOR.html deleted file mode 100644 index f4482ddb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_IXOR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_IXOR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_IXOR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_IXOR

            -
            public InstructionSet.I_IXOR(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_JSR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_JSR.html deleted file mode 100644 index 1c023677..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_JSR.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - -InstructionSet.I_JSR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_JSR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_JSR

            -
            public InstructionSet.I_JSR(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_JSR_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_JSR_W.html deleted file mode 100644 index eed04da9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_JSR_W.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - -InstructionSet.I_JSR_W - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_JSR_W

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_JSR_W

            -
            public InstructionSet.I_JSR_W(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2D.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2D.html deleted file mode 100644 index 4ef9ad72..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2D.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_L2D - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_L2D

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_L2D

            -
            public InstructionSet.I_L2D(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2F.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2F.html deleted file mode 100644 index 8d741a21..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2F.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_L2F - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_L2F

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_L2F

            -
            public InstructionSet.I_L2F(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2I.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2I.html deleted file mode 100644 index 76930799..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_L2I.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - -InstructionSet.I_L2I - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_L2I

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_L2I

            -
            public InstructionSet.I_L2I(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LADD.html deleted file mode 100644 index dc597b85..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LADD.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LADD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LADD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LADD

            -
            public InstructionSet.I_LADD(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LALOAD.html deleted file mode 100644 index 3efe3d8e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_LALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LALOAD

            -
            public InstructionSet.I_LALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LAND.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LAND.html deleted file mode 100644 index 69375803..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LAND.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LAND - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LAND

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LAND

            -
            public InstructionSet.I_LAND(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LASTORE.html deleted file mode 100644 index e8b6370e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_LASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LASTORE

            -
            public InstructionSet.I_LASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCMP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCMP.html deleted file mode 100644 index 8e0ad618..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCMP.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LCMP - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LCMP

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LCMP

            -
            public InstructionSet.I_LCMP(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCONST_0.html deleted file mode 100644 index a8cb237e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCONST_0.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_LCONST_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LCONST_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LCONST_0

            -
            public InstructionSet.I_LCONST_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCONST_1.html deleted file mode 100644 index 0ce989d5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LCONST_1.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_LCONST_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LCONST_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LCONST_1

            -
            public InstructionSet.I_LCONST_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC.html deleted file mode 100644 index 42122c0f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -InstructionSet.I_LDC - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LDC

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC2_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC2_W.html deleted file mode 100644 index 2d5bd22a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC2_W.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -InstructionSet.I_LDC2_W - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LDC2_W

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC_W.html deleted file mode 100644 index 25852ca4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDC_W.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -InstructionSet.I_LDC_W - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LDC_W

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDIV.html deleted file mode 100644 index 723d62f7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LDIV.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LDIV - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LDIV

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LDIV

            -
            public InstructionSet.I_LDIV(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD.html deleted file mode 100644 index 151fc8b3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_LLOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LLOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LLOAD

            -
            public InstructionSet.I_LLOAD(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_0.html deleted file mode 100644 index 0425dd48..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_0.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_LLOAD_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LLOAD_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LLOAD_0

            -
            public InstructionSet.I_LLOAD_0(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_1.html deleted file mode 100644 index ae313d71..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_1.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_LLOAD_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LLOAD_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LLOAD_1

            -
            public InstructionSet.I_LLOAD_1(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_2.html deleted file mode 100644 index 3eb42766..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_2.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_LLOAD_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LLOAD_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LLOAD_2

            -
            public InstructionSet.I_LLOAD_2(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_3.html deleted file mode 100644 index 7f463c11..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LLOAD_3.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - -InstructionSet.I_LLOAD_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LLOAD_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LLOAD_3

            -
            public InstructionSet.I_LLOAD_3(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LMUL.html deleted file mode 100644 index c4dbe901..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LMUL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LMUL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LMUL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LMUL

            -
            public InstructionSet.I_LMUL(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LNEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LNEG.html deleted file mode 100644 index 304aadea..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LNEG.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LNEG - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LNEG

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LNEG

            -
            public InstructionSet.I_LNEG(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LOOKUPSWITCH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LOOKUPSWITCH.html deleted file mode 100644 index 80f6e131..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LOOKUPSWITCH.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - -InstructionSet.I_LOOKUPSWITCH - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LOOKUPSWITCH

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LOOKUPSWITCH

            -
            public InstructionSet.I_LOOKUPSWITCH(MethodModel _methodPoolEntry,
            -                             ByteReader _byteReader,
            -                             boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - -
            -
          • -

            getMatches

            -
            public int[] getMatches()
            -
          • -
          - - - -
            -
          • -

            getNpairs

            -
            public int getNpairs()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LOR.html deleted file mode 100644 index a125efec..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LOR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LOR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LOR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LOR

            -
            public InstructionSet.I_LOR(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LREM.html deleted file mode 100644 index 47839d59..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LREM.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LREM - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LREM

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LREM

            -
            public InstructionSet.I_LREM(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LRETURN.html deleted file mode 100644 index 28494a28..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LRETURN.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_LRETURN - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LRETURN

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LRETURN

            -
            public InstructionSet.I_LRETURN(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSHL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSHL.html deleted file mode 100644 index c28fedba..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSHL.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LSHL - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSHL

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSHL

            -
            public InstructionSet.I_LSHL(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSHR.html deleted file mode 100644 index 05fdc3e6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSHR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LSHR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSHR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSHR

            -
            public InstructionSet.I_LSHR(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE.html deleted file mode 100644 index 54f475b9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_LSTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSTORE

            -
            public InstructionSet.I_LSTORE(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_0.html deleted file mode 100644 index 7cd63e48..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_0.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_LSTORE_0 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSTORE_0

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSTORE_0

            -
            public InstructionSet.I_LSTORE_0(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_1.html deleted file mode 100644 index e3714b00..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_1.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_LSTORE_1 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSTORE_1

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSTORE_1

            -
            public InstructionSet.I_LSTORE_1(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_2.html deleted file mode 100644 index e8b10c71..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_2.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_LSTORE_2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSTORE_2

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSTORE_2

            -
            public InstructionSet.I_LSTORE_2(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_3.html deleted file mode 100644 index ca65ed00..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSTORE_3.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_LSTORE_3 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSTORE_3

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSTORE_3

            -
            public InstructionSet.I_LSTORE_3(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSUB.html deleted file mode 100644 index 0385bf42..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LSUB.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LSUB - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LSUB

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LSUB

            -
            public InstructionSet.I_LSUB(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LUSHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LUSHR.html deleted file mode 100644 index 5555ba63..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LUSHR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LUSHR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LUSHR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LUSHR

            -
            public InstructionSet.I_LUSHR(MethodModel _methodPoolEntry,
            -                      ByteReader _byteReader,
            -                      boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LXOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LXOR.html deleted file mode 100644 index f8189136..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_LXOR.html +++ /dev/null @@ -1,311 +0,0 @@ - - - - - -InstructionSet.I_LXOR - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_LXOR

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_LXOR

            -
            public InstructionSet.I_LXOR(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MONITORENTER.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MONITORENTER.html deleted file mode 100644 index 7cb54bf4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MONITORENTER.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_MONITORENTER - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_MONITORENTER

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_MONITORENTER

            -
            public InstructionSet.I_MONITORENTER(MethodModel _methodPoolEntry,
            -                             ByteReader _byteReader,
            -                             boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MONITOREXIT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MONITOREXIT.html deleted file mode 100644 index 6ee1eebc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MONITOREXIT.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_MONITOREXIT - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_MONITOREXIT

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_MONITOREXIT

            -
            public InstructionSet.I_MONITOREXIT(MethodModel _methodPoolEntry,
            -                            ByteReader _byteReader,
            -                            boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MULTIANEWARRAY.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MULTIANEWARRAY.html deleted file mode 100644 index 90cfd82e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_MULTIANEWARRAY.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - -InstructionSet.I_MULTIANEWARRAY - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_MULTIANEWARRAY

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_MULTIANEWARRAY

            -
            public InstructionSet.I_MULTIANEWARRAY(MethodModel _methodPoolEntry,
            -                               ByteReader _byteReader,
            -                               boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - -
            -
          • -

            getDimensions

            -
            public int getDimensions()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NEW.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NEW.html deleted file mode 100644 index 605cb823..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NEW.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -InstructionSet.I_NEW - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_NEW

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_NEW

            -
            public InstructionSet.I_NEW(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NEWARRAY.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NEWARRAY.html deleted file mode 100644 index bf4c0b61..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NEWARRAY.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - - -InstructionSet.I_NEWARRAY - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_NEWARRAY

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_NEWARRAY

            -
            public InstructionSet.I_NEWARRAY(MethodModel _methodPoolEntry,
            -                         ByteReader _byteReader,
            -                         boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - -
            -
          • -

            getType

            -
            public int getType()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NOP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NOP.html deleted file mode 100644 index 12c55a8c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_NOP.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_NOP - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_NOP

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_NOP

            -
            public InstructionSet.I_NOP(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_POP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_POP.html deleted file mode 100644 index 0c938f38..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_POP.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_POP - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_POP

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_POP

            -
            public InstructionSet.I_POP(MethodModel _methodPoolEntry,
            -                    ByteReader _byteReader,
            -                    boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_POP2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_POP2.html deleted file mode 100644 index 50c03620..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_POP2.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_POP2 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_POP2

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_POP2

            -
            public InstructionSet.I_POP2(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_PUTFIELD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_PUTFIELD.html deleted file mode 100644 index 8e614999..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_PUTFIELD.html +++ /dev/null @@ -1,393 +0,0 @@ - - - - - -InstructionSet.I_PUTFIELD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_PUTFIELD

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_PUTSTATIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_PUTSTATIC.html deleted file mode 100644 index 0398693b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_PUTSTATIC.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - -InstructionSet.I_PUTSTATIC - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_PUTSTATIC

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_RET.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_RET.html deleted file mode 100644 index f97fa8e4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_RET.html +++ /dev/null @@ -1,342 +0,0 @@ - - - - - -InstructionSet.I_RET - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_RET

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_RETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_RETURN.html deleted file mode 100644 index 1f369fef..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_RETURN.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -InstructionSet.I_RETURN - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_RETURN

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_RETURN

            -
            public InstructionSet.I_RETURN(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SALOAD.html deleted file mode 100644 index cecabdca..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SALOAD.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -InstructionSet.I_SALOAD - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_SALOAD

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_SALOAD

            -
            public InstructionSet.I_SALOAD(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SASTORE.html deleted file mode 100644 index af50da15..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SASTORE.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - -InstructionSet.I_SASTORE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_SASTORE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_SASTORE

            -
            public InstructionSet.I_SASTORE(MethodModel _methodPoolEntry,
            -                        ByteReader _byteReader,
            -                        boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SIPUSH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SIPUSH.html deleted file mode 100644 index 91177d72..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SIPUSH.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -InstructionSet.I_SIPUSH - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_SIPUSH

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_SIPUSH

            -
            public InstructionSet.I_SIPUSH(MethodModel _methodPoolEntry,
            -                       ByteReader _byteReader,
            -                       boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SWAP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SWAP.html deleted file mode 100644 index 4574165b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_SWAP.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -InstructionSet.I_SWAP - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_SWAP

      -
      -
      - -
      - -
      - -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_SWAP

            -
            public InstructionSet.I_SWAP(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_TABLESWITCH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_TABLESWITCH.html deleted file mode 100644 index c3c3d9de..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_TABLESWITCH.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - -InstructionSet.I_TABLESWITCH - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_TABLESWITCH

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_TABLESWITCH

            -
            public InstructionSet.I_TABLESWITCH(MethodModel _methodPoolEntry,
            -                            ByteReader _byteReader,
            -                            boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - -
            -
          • -

            getHigh

            -
            public int getHigh()
            -
          • -
          - - - -
            -
          • -

            getLow

            -
            public int getLow()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_WIDE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_WIDE.html deleted file mode 100644 index 791344a5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.I_WIDE.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - -InstructionSet.I_WIDE - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.I_WIDE

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.I_WIDE

            -
            public InstructionSet.I_WIDE(MethodModel _methodPoolEntry,
            -                     ByteReader _byteReader,
            -                     boolean _wide)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - -
            -
          • -

            getIncrement

            -
            public int getIncrement()
            -
          • -
          - - - -
            -
          • -

            getIndex

            -
            public int getIndex()
            -
          • -
          - - - -
            -
          • -

            getWideopcode

            -
            public int getWideopcode()
            -
          • -
          - - - -
            -
          • -

            isiinc

            -
            public boolean isiinc()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.If.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.If.html deleted file mode 100644 index 4133848d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.If.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - -InstructionSet.If - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.If

      -
      -
      - - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IfUnary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IfUnary.html deleted file mode 100644 index 9ddeadd4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IfUnary.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - -InstructionSet.IfUnary - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.IfUnary

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ImmediateConstant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ImmediateConstant.html deleted file mode 100644 index 59bbda6b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ImmediateConstant.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -InstructionSet.ImmediateConstant - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.ImmediateConstant<T>

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ImmediateSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ImmediateSpec.html deleted file mode 100644 index ba429204..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.ImmediateSpec.html +++ /dev/null @@ -1,507 +0,0 @@ - - - - - -InstructionSet.ImmediateSpec - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Enum InstructionSet.ImmediateSpec

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IncrementInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IncrementInstruction.html deleted file mode 100644 index 3c0de583..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IncrementInstruction.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - -InstructionSet.IncrementInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.IncrementInstruction

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionSet
        -
        -
        -
        -
        public static class InstructionSet.IncrementInstruction
        -extends Instruction
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.IncrementInstruction

            -
            public InstructionSet.IncrementInstruction(MethodModel method,
            -                                   Instruction _fieldOrVariable,
            -                                   boolean _isInc,
            -                                   boolean _isPre)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getFieldOrVariableReference

            -
            public Instruction getFieldOrVariableReference()
            -
          • -
          - - - -
            -
          • -

            isPre

            -
            public boolean isPre()
            -
          • -
          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          - - - -
            -
          • -

            isInc

            -
            public boolean isInc()
            -
          • -
          - - - - -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index.html deleted file mode 100644 index 4536e52c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - -InstructionSet.Index - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Index

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index08.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index08.html deleted file mode 100644 index 86c99a63..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index08.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - -InstructionSet.Index08 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Index08

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index16.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index16.html deleted file mode 100644 index 957cf5d0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Index16.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - - -InstructionSet.Index16 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Index16

      -
      -
      - - - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IndexConst.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IndexConst.html deleted file mode 100644 index 2b63f1f9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.IndexConst.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - -InstructionSet.IndexConst - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.IndexConst

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.InlineAssignInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.InlineAssignInstruction.html deleted file mode 100644 index 514b8712..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.InlineAssignInstruction.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - -InstructionSet.InlineAssignInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.InlineAssignInstruction

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionSet
        -
        -
        -
        -
        public static class InstructionSet.InlineAssignInstruction
        -extends Instruction
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.InterfaceConstantPoolMethodIndexAccessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.InterfaceConstantPoolMethodIndexAccessor.html deleted file mode 100644 index 782a8704..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.InterfaceConstantPoolMethodIndexAccessor.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - - -InstructionSet.InterfaceConstantPoolMethodIndexAccessor - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.InterfaceConstantPoolMethodIndexAccessor

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexAccessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexAccessor.html deleted file mode 100644 index 9e1eaf99..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexAccessor.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - -InstructionSet.LocalVariableConstIndexAccessor - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.LocalVariableConstIndexAccessor

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexLoad.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexLoad.html deleted file mode 100644 index d24973aa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexLoad.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - -InstructionSet.LocalVariableConstIndexLoad - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.LocalVariableConstIndexLoad

      -
      -
      - - -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet.LocalVariableConstIndexLoad

            -
            public InstructionSet.LocalVariableConstIndexLoad(MethodModel methodPoolEntry,
            -                                          InstructionSet.ByteCode byteCode,
            -                                          ByteReader byteReader,
            -                                          boolean _wide,
            -                                          int index)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexStore.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexStore.html deleted file mode 100644 index 0b795758..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableConstIndexStore.html +++ /dev/null @@ -1,335 +0,0 @@ - - - - - -InstructionSet.LocalVariableConstIndexStore - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.LocalVariableConstIndexStore

      -
      -
      - - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Accessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Accessor.html deleted file mode 100644 index c2608da7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Accessor.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - -InstructionSet.LocalVariableIndex08Accessor - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.LocalVariableIndex08Accessor

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Load.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Load.html deleted file mode 100644 index 265e807c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Load.html +++ /dev/null @@ -1,308 +0,0 @@ - - - - - -InstructionSet.LocalVariableIndex08Load - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.LocalVariableIndex08Load

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescription

            -
            public java.lang.String getDescription()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Store.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Store.html deleted file mode 100644 index 9448e093..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableIndex08Store.html +++ /dev/null @@ -1,333 +0,0 @@ - - - - - -InstructionSet.LocalVariableIndex08Store - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.LocalVariableIndex08Store

      -
      -
      - - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableTableIndexAccessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableTableIndexAccessor.html deleted file mode 100644 index bd3198a1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.LocalVariableTableIndexAccessor.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - -InstructionSet.LocalVariableTableIndexAccessor - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.LocalVariableTableIndexAccessor

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.MethodCall.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.MethodCall.html deleted file mode 100644 index 6ab53bd4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.MethodCall.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - -InstructionSet.MethodCall - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.MethodCall

      -
      -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.MultiAssignInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.MultiAssignInstruction.html deleted file mode 100644 index 39bd092c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.MultiAssignInstruction.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - -InstructionSet.MultiAssignInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.MultiAssignInstruction

      -
      -
      - -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionSet
        -
        -
        -
        -
        public static class InstructionSet.MultiAssignInstruction
        -extends Instruction
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.New.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.New.html deleted file mode 100644 index 9cb864ee..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.New.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -InstructionSet.New - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.New

      -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Operator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Operator.html deleted file mode 100644 index 42ebf8fd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Operator.html +++ /dev/null @@ -1,837 +0,0 @@ - - - - - -InstructionSet.Operator - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Enum InstructionSet.Operator

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.OperatorInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.OperatorInstruction.html deleted file mode 100644 index 4bf93f5e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.OperatorInstruction.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - - -InstructionSet.OperatorInstruction - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.OperatorInstruction

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.PopSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.PopSpec.html deleted file mode 100644 index 8c60293a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.PopSpec.html +++ /dev/null @@ -1,662 +0,0 @@ - - - - - -InstructionSet.PopSpec - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Enum InstructionSet.PopSpec

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • java.lang.Enum<InstructionSet.PopSpec>
        • -
        • -
            -
          • com.amd.aparapi.internal.instruction.InstructionSet.PopSpec
          • -
          -
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          intgetStackAdjust() 
          static InstructionSet.PopSpecvalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static InstructionSet.PopSpec[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.PushSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.PushSpec.html deleted file mode 100644 index f82d0709..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.PushSpec.html +++ /dev/null @@ -1,518 +0,0 @@ - - - - - -InstructionSet.PushSpec - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Enum InstructionSet.PushSpec

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Enum Constants 
          Enum Constant and Description
          A 
          D 
          F 
          I 
          II 
          III 
          IIII 
          IIIII 
          IIIIII 
          IorForS 
          L 
          LorD 
          N 
          NONE 
          O 
          RA 
          UNKNOWN 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          intgetStackAdjust() 
          static InstructionSet.PushSpecvalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static InstructionSet.PushSpec[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Return.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Return.html deleted file mode 100644 index 3753d963..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Return.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - -InstructionSet.Return - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Return

      -
      -
      - -
      - -
      - -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Switch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Switch.html deleted file mode 100644 index e3820648..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Switch.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - -InstructionSet.Switch - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.Switch

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getTarget

            -
            public Instruction getTarget(int _index)
            -
          • -
          - - - -
            -
          • -

            setTarget

            -
            public void setTarget(int _index,
            -             Instruction _instruction)
            -
          • -
          - - - -
            -
          • -

            getAbsolute

            -
            public int getAbsolute(int _index)
            -
          • -
          - - - -
            -
          • -

            getOffset

            -
            public int getOffset(int _index)
            -
          • -
          - - - -
            -
          • -

            getOffsets

            -
            public int[] getOffsets()
            -
          • -
          - - - -
            -
          • -

            getSize

            -
            public int getSize()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.TypeSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.TypeSpec.html deleted file mode 100644 index 903bf2b5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.TypeSpec.html +++ /dev/null @@ -1,569 +0,0 @@ - - - - - -InstructionSet.TypeSpec - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Enum InstructionSet.TypeSpec

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Enum Constants 
          Enum Constant and Description
          A 
          ARGS 
          B 
          C 
          D 
          F 
          I 
          IorForS 
          J 
          L 
          LorD 
          N 
          NONE 
          O 
          RA 
          S 
          UNKNOWN 
          Z 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          java.lang.StringgetLongName() 
          java.lang.StringgetShortName() 
          intgetSize() 
          intgetSlots() 
          static InstructionSet.TypeSpecvalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static InstructionSet.TypeSpec[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Unary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Unary.html deleted file mode 100644 index b77ae7fc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.Unary.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -InstructionSet.Unary - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.Unary

      -
      - - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnaryOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnaryOperator.html deleted file mode 100644 index 6326ddb6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnaryOperator.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - - -InstructionSet.UnaryOperator - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.UnaryOperator

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnconditionalBranch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnconditionalBranch.html deleted file mode 100644 index 8a564e68..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnconditionalBranch.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - -InstructionSet.UnconditionalBranch - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.UnconditionalBranch

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnconditionalBranch16.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnconditionalBranch16.html deleted file mode 100644 index 6a3c76e2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.UnconditionalBranch16.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - -InstructionSet.UnconditionalBranch16 - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet.UnconditionalBranch16

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.VirtualMethodCall.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.VirtualMethodCall.html deleted file mode 100644 index d18d329c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.VirtualMethodCall.html +++ /dev/null @@ -1,226 +0,0 @@ - - - - - -InstructionSet.VirtualMethodCall - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Interface InstructionSet.VirtualMethodCall

      -
      -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getInstanceReference

            -
            Instruction getInstanceReference()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.html deleted file mode 100644 index 9552fb87..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionSet.html +++ /dev/null @@ -1,1329 +0,0 @@ - - - - - -InstructionSet - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionSet

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.InstructionSet
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class InstructionSet
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionSet

            -
            public InstructionSet()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionTransformer.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionTransformer.html deleted file mode 100644 index 4722dd65..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/InstructionTransformer.html +++ /dev/null @@ -1,271 +0,0 @@ - - - - - -InstructionTransformer - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.instruction
      -

      Class InstructionTransformer

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.instruction.InstructionTransformer
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public abstract class InstructionTransformer
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          InstructionTransformer(java.lang.String _description) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          java.lang.StringgetDescription() 
          abstract Instructiontransform(ExpressionList _expressionList, - Instruction i) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionTransformer

            -
            public InstructionTransformer(java.lang.String _description)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.CompoundLogicalExpressionNode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.CompoundLogicalExpressionNode.html deleted file mode 100644 index a5d56502..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.CompoundLogicalExpressionNode.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode

      -
      -
      No usage of com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.LogicalExpressionNode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.LogicalExpressionNode.html deleted file mode 100644 index 4b8fd7fd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.LogicalExpressionNode.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.SimpleLogicalExpressionNode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.SimpleLogicalExpressionNode.html deleted file mode 100644 index 5ec7f41c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.SimpleLogicalExpressionNode.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode

      -
      -
      No usage of com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.html deleted file mode 100644 index d64baf82..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/BranchSet.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.BranchSet - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.BranchSet

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/ExpressionList.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/ExpressionList.html deleted file mode 100644 index 5f0c25c0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/ExpressionList.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.ExpressionList - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.ExpressionList

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/Instruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/Instruction.html deleted file mode 100644 index 4cb2c7ef..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/Instruction.html +++ /dev/null @@ -1,1925 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.Instruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.Instruction

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.AssignableInstructionMatcher.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.AssignableInstructionMatcher.html deleted file mode 100644 index 45201ebb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.AssignableInstructionMatcher.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionPattern.AssignableInstructionMatcher - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionPattern.AssignableInstructionMatcher

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionPattern.AssignableInstructionMatcher
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.InstructionMatch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.InstructionMatch.html deleted file mode 100644 index 68c453b8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.InstructionMatch.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.InstructionMatcher.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.InstructionMatcher.html deleted file mode 100644 index c56d9104..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.InstructionMatcher.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatcher - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatcher

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.html deleted file mode 100644 index f8bcd443..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionPattern.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionPattern - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionPattern

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionPattern
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessArrayElement.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessArrayElement.html deleted file mode 100644 index 9e259b33..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessArrayElement.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.AccessArrayElement - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.AccessArrayElement

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessField.html deleted file mode 100644 index c4d88ac1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessField.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.AccessField - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.AccessField

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessInstanceField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessInstanceField.html deleted file mode 100644 index c62e8681..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessInstanceField.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.AccessInstanceField - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.AccessInstanceField

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessLocalVariable.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessLocalVariable.html deleted file mode 100644 index a0107d61..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AccessLocalVariable.html +++ /dev/null @@ -1,375 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.AccessLocalVariable - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.AccessLocalVariable

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ArrayAccess.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ArrayAccess.html deleted file mode 100644 index de6d4b2b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ArrayAccess.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.ArrayAccess - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.ArrayAccess

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToArrayElement.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToArrayElement.html deleted file mode 100644 index ec52e7b5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToArrayElement.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.AssignToArrayElement - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.AssignToArrayElement

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToField.html deleted file mode 100644 index d4f9d516..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToField.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.AssignToField - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.AssignToField

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToInstanceField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToInstanceField.html deleted file mode 100644 index b45322eb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToInstanceField.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.AssignToInstanceField - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.AssignToInstanceField

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToLocalVariable.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToLocalVariable.html deleted file mode 100644 index a2a5c541..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.AssignToLocalVariable.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.AssignToLocalVariable - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.AssignToLocalVariable

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Binary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Binary.html deleted file mode 100644 index b39b9e0a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Binary.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.Binary - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.Binary

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.BinaryOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.BinaryOperator.html deleted file mode 100644 index 7488a06f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.BinaryOperator.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.BinaryOperator - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.BinaryOperator

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Branch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Branch.html deleted file mode 100644 index cd3dcb77..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Branch.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Branch - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Branch

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Branch32.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Branch32.html deleted file mode 100644 index d31ea3c5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Branch32.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Branch32 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Branch32

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ByteCode.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ByteCode.html deleted file mode 100644 index c78f476a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ByteCode.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.ByteCode - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.ByteCode

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.BytecodeEncodedConstant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.BytecodeEncodedConstant.html deleted file mode 100644 index ce08feb5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.BytecodeEncodedConstant.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.BytecodeEncodedConstant - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.BytecodeEncodedConstant

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CastOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CastOperator.html deleted file mode 100644 index d8c924d3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CastOperator.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CastOperator - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CastOperator

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CloneInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CloneInstruction.html deleted file mode 100644 index 95c3ffdf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CloneInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeArbitraryScopeInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeArbitraryScopeInstruction.html deleted file mode 100644 index 1c8c56df..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeArbitraryScopeInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeArbitraryScopeInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeArbitraryScopeInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeArbitraryScopeInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeEmptyLoopInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeEmptyLoopInstruction.html deleted file mode 100644 index 27c180fc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeEmptyLoopInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeEmptyLoopInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeEmptyLoopInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeEmptyLoopInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeForEclipseInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeForEclipseInstruction.html deleted file mode 100644 index 64223ba0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeForEclipseInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeForEclipseInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeForEclipseInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeForEclipseInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeForSunInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeForSunInstruction.html deleted file mode 100644 index e5f95c4a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeForSunInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeForSunInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeForSunInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeForSunInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeIfElseInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeIfElseInstruction.html deleted file mode 100644 index 2c1d6ef9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeIfElseInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfElseInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfElseInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfElseInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeIfInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeIfInstruction.html deleted file mode 100644 index c2089b03..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeIfInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeInstruction.html deleted file mode 100644 index f48cdec5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeInstruction.html +++ /dev/null @@ -1,218 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeWhileInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeWhileInstruction.html deleted file mode 100644 index cf14ca7f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.CompositeWhileInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.CompositeWhileInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.CompositeWhileInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.CompositeWhileInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConditionalBranch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConditionalBranch.html deleted file mode 100644 index 270990f5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConditionalBranch.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConditionalBranch16.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConditionalBranch16.html deleted file mode 100644 index 950b8bfb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConditionalBranch16.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch16 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch16

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Constant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Constant.html deleted file mode 100644 index c153061a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Constant.html +++ /dev/null @@ -1,252 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.Constant - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.Constant

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConstantPoolEntryConstant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConstantPoolEntryConstant.html deleted file mode 100644 index 783343d5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ConstantPoolEntryConstant.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.ConstantPoolEntryConstant - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.ConstantPoolEntryConstant

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.DUP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.DUP.html deleted file mode 100644 index 9ec22a43..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.DUP.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.DUP - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.DUP

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FakeGoto.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FakeGoto.html deleted file mode 100644 index 4332ab9d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FakeGoto.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.FakeGoto - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.FakeGoto

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.FakeGoto
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldArrayElementAssign.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldArrayElementAssign.html deleted file mode 100644 index 3a73ba94..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldArrayElementAssign.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldArrayElementIncrement.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldArrayElementIncrement.html deleted file mode 100644 index 9eac13df..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldArrayElementIncrement.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldReference.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldReference.html deleted file mode 100644 index 9506e857..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.FieldReference.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.FieldReference - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.FieldReference

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.HasOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.HasOperator.html deleted file mode 100644 index ae802b12..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.HasOperator.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.HasOperator - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.HasOperator

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_AALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_AALOAD.html deleted file mode 100644 index 1f3047a3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_AALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_AALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_AALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_AALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_AASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_AASTORE.html deleted file mode 100644 index c9948dfa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_AASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_AASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_AASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_AASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ACONST_NULL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ACONST_NULL.html deleted file mode 100644 index f5dec488..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ACONST_NULL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD.html deleted file mode 100644 index 12589387..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_0.html deleted file mode 100644 index 289fb4ac..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_1.html deleted file mode 100644 index 8cd67b06..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_2.html deleted file mode 100644 index 77c4b633..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_3.html deleted file mode 100644 index b18704eb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ALOAD_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ANEWARRAY.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ANEWARRAY.html deleted file mode 100644 index 6640747c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ANEWARRAY.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ANEWARRAY - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ANEWARRAY

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ANEWARRAY
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ARETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ARETURN.html deleted file mode 100644 index 69342694..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ARETURN.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ARETURN - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ARETURN

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ARETURN
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ARRAYLENGTH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ARRAYLENGTH.html deleted file mode 100644 index 969223ab..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ARRAYLENGTH.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ARRAYLENGTH - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ARRAYLENGTH

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ARRAYLENGTH
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE.html deleted file mode 100644 index 0a05826e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_0.html deleted file mode 100644 index bd2eadea..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_1.html deleted file mode 100644 index aaca2fc9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_2.html deleted file mode 100644 index 7333555d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_3.html deleted file mode 100644 index 99d35463..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ASTORE_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ATHROW.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ATHROW.html deleted file mode 100644 index 1690b502..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ATHROW.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ATHROW - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ATHROW

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ATHROW
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BALOAD.html deleted file mode 100644 index 80c7b3ad..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_BALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_BALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_BALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BASTORE.html deleted file mode 100644 index 827bca4a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_BASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_BASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_BASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BIPUSH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BIPUSH.html deleted file mode 100644 index 8e814cce..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_BIPUSH.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_BIPUSH - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_BIPUSH

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_BIPUSH
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CALOAD.html deleted file mode 100644 index 1748cd96..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_CALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_CALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_CALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CASTORE.html deleted file mode 100644 index 0835b04d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_CASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_CASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_CASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CHECKCAST.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CHECKCAST.html deleted file mode 100644 index 398038e9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_CHECKCAST.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_CHECKCAST - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_CHECKCAST

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_CHECKCAST
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2F.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2F.html deleted file mode 100644 index bb29c61d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2F.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_D2F - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_D2F

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_D2F
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2I.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2I.html deleted file mode 100644 index e3e2293e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2I.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_D2I - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_D2I

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_D2I
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2L.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2L.html deleted file mode 100644 index d892ba39..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_D2L.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_D2L - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_D2L

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_D2L
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DADD.html deleted file mode 100644 index 62501486..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DADD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DADD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DADD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DADD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DALOAD.html deleted file mode 100644 index d034fae5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DASTORE.html deleted file mode 100644 index de16e752..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCMPG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCMPG.html deleted file mode 100644 index 1c879053..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCMPG.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPG - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPG

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPG
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCMPL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCMPL.html deleted file mode 100644 index 9baa5be8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCMPL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCONST_0.html deleted file mode 100644 index 52edcb25..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCONST_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCONST_1.html deleted file mode 100644 index a12b226c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DCONST_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DDIV.html deleted file mode 100644 index f8858a5a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DDIV.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DDIV - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DDIV

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DDIV
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD.html deleted file mode 100644 index 31d2d456..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_0.html deleted file mode 100644 index 4a59290e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_1.html deleted file mode 100644 index a1362e26..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_2.html deleted file mode 100644 index 44dfc025..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_3.html deleted file mode 100644 index dc61070f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DLOAD_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DMUL.html deleted file mode 100644 index 485f5043..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DMUL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DMUL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DMUL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DMUL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DNEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DNEG.html deleted file mode 100644 index 65c60e3f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DNEG.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DNEG - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DNEG

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DNEG
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DREM.html deleted file mode 100644 index 89a8a042..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DREM.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DREM - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DREM

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DREM
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DRETURN.html deleted file mode 100644 index 414dd2fc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DRETURN.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DRETURN - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DRETURN

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DRETURN
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE.html deleted file mode 100644 index df112319..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_0.html deleted file mode 100644 index efc13ab8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_1.html deleted file mode 100644 index 43164720..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_2.html deleted file mode 100644 index 7927ac11..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_3.html deleted file mode 100644 index bd73e18b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSTORE_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSUB.html deleted file mode 100644 index 06d0d91e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DSUB.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DSUB - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DSUB

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DSUB
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP.html deleted file mode 100644 index 85b112db..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DUP

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DUP
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2.html deleted file mode 100644 index 1ba58a11..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2_X1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2_X1.html deleted file mode 100644 index d326da07..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2_X1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2_X2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2_X2.html deleted file mode 100644 index 249f4af6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP2_X2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP_X1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP_X1.html deleted file mode 100644 index 2b0c3797..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP_X1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP_X2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP_X2.html deleted file mode 100644 index 29b0e29c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_DUP_X2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_END.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_END.html deleted file mode 100644 index 19c2ad5f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_END.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_END - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_END

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_END
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2D.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2D.html deleted file mode 100644 index d8f64f0f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2D.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_F2D - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_F2D

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_F2D
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2I.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2I.html deleted file mode 100644 index 01e11de3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2I.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_F2I - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_F2I

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_F2I
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2L.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2L.html deleted file mode 100644 index a41bed62..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_F2L.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_F2L - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_F2L

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_F2L
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FADD.html deleted file mode 100644 index df93d057..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FADD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FADD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FADD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FADD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FALOAD.html deleted file mode 100644 index cd8efffc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FASTORE.html deleted file mode 100644 index ed863c5c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCMPG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCMPG.html deleted file mode 100644 index cabcbb32..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCMPG.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPG - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPG

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPG
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCMPL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCMPL.html deleted file mode 100644 index f73ec349..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCMPL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_0.html deleted file mode 100644 index d2a51de8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_1.html deleted file mode 100644 index 5e1ad47c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_2.html deleted file mode 100644 index 50316ea9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FCONST_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FDIV.html deleted file mode 100644 index 63e4414e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FDIV.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FDIV - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FDIV

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FDIV
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD.html deleted file mode 100644 index 0a014dca..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_0.html deleted file mode 100644 index fc03f17f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_1.html deleted file mode 100644 index ce05d2be..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_2.html deleted file mode 100644 index 43e13879..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_3.html deleted file mode 100644 index 8f3b47d6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FLOAD_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FMUL.html deleted file mode 100644 index 1675606d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FMUL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FMUL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FMUL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FMUL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FNEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FNEG.html deleted file mode 100644 index 6a2e503f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FNEG.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FNEG - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FNEG

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FNEG
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FREM.html deleted file mode 100644 index 9ab941ad..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FREM.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FREM - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FREM

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FREM
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FRETURN.html deleted file mode 100644 index 6df8a29e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FRETURN.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FRETURN - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FRETURN

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FRETURN
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE.html deleted file mode 100644 index bb3779bb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_0.html deleted file mode 100644 index 6c437e28..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_1.html deleted file mode 100644 index 567099c6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_2.html deleted file mode 100644 index 186bb707..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_3.html deleted file mode 100644 index 4a8f8af5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSTORE_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSUB.html deleted file mode 100644 index 14389784..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_FSUB.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_FSUB - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_FSUB

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_FSUB
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GETFIELD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GETFIELD.html deleted file mode 100644 index 93213d04..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GETFIELD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GETSTATIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GETSTATIC.html deleted file mode 100644 index e5332d2e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GETSTATIC.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GOTO.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GOTO.html deleted file mode 100644 index 0e8f07ff..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GOTO.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GOTO_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GOTO_W.html deleted file mode 100644 index e3af36f9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_GOTO_W.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO_W - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO_W

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO_W
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2B.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2B.html deleted file mode 100644 index 25a51cf2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2B.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_I2B - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_I2B

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_I2B
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2C.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2C.html deleted file mode 100644 index 5a09f0ba..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2C.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_I2C - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_I2C

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_I2C
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2D.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2D.html deleted file mode 100644 index 3b38e5a7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2D.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_I2D - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_I2D

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_I2D
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2F.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2F.html deleted file mode 100644 index 3bf4be81..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2F.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_I2F - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_I2F

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_I2F
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2L.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2L.html deleted file mode 100644 index 9c046c53..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2L.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_I2L - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_I2L

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_I2L
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2S.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2S.html deleted file mode 100644 index b39519fe..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_I2S.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_I2S - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_I2S

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_I2S
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IADD.html deleted file mode 100644 index 56450932..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IADD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IADD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IADD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IADD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IALOAD.html deleted file mode 100644 index f9fa0908..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IAND.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IAND.html deleted file mode 100644 index 7cece329..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IAND.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IAND - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IAND

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IAND
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IASTORE.html deleted file mode 100644 index 051d2729..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_0.html deleted file mode 100644 index 8373bcf1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_1.html deleted file mode 100644 index e77c3c6e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_2.html deleted file mode 100644 index d23fd076..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_3.html deleted file mode 100644 index 64e42a79..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_4.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_4.html deleted file mode 100644 index 24f952b6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_4.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_4 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_4

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_4
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_5.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_5.html deleted file mode 100644 index 2149f4d4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_5.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_5 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_5

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_5
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_M1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_M1.html deleted file mode 100644 index c6bea3ef..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ICONST_M1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_M1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_M1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_M1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IDIV.html deleted file mode 100644 index 58564f2b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IDIV.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IDIV - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IDIV

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IDIV
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFEQ.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFEQ.html deleted file mode 100644 index 889f2168..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFEQ.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFEQ - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFEQ

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFEQ
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFGE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFGE.html deleted file mode 100644 index 5a5b135e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFGE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFGE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFGE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFGE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFGT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFGT.html deleted file mode 100644 index 35e275f6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFGT.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFGT - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFGT

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFGT
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFLE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFLE.html deleted file mode 100644 index 4fea0c99..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFLE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFLE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFLE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFLE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFLT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFLT.html deleted file mode 100644 index dfdd7a03..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFLT.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFLT - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFLT

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFLT
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNE.html deleted file mode 100644 index bd7ff558..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFNE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFNE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNONNULL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNONNULL.html deleted file mode 100644 index 09e6e3b2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNONNULL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNONNULL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFNONNULL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFNONNULL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNULL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNULL.html deleted file mode 100644 index 18a6f3fe..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IFNULL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNULL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IFNULL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IFNULL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ACMPEQ.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ACMPEQ.html deleted file mode 100644 index 04c2bce0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ACMPEQ.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPEQ - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPEQ

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPEQ
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ACMPNE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ACMPNE.html deleted file mode 100644 index 3fcac16d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ACMPNE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPNE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPNE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPNE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPEQ.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPEQ.html deleted file mode 100644 index 16ddb367..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPEQ.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPEQ - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPEQ

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPEQ
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPGE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPGE.html deleted file mode 100644 index 27d9c395..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPGE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPGT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPGT.html deleted file mode 100644 index 40621002..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPGT.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGT - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGT

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGT
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPLE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPLE.html deleted file mode 100644 index 2882ad96..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPLE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPLT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPLT.html deleted file mode 100644 index 56e23c2a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPLT.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLT - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLT

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLT
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPNE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPNE.html deleted file mode 100644 index 7d1e1748..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IF_ICMPNE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPNE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPNE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPNE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IINC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IINC.html deleted file mode 100644 index a0e85199..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IINC.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IINC

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD.html deleted file mode 100644 index 9516617f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_0.html deleted file mode 100644 index 2d8d067c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_1.html deleted file mode 100644 index 37d06616..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_2.html deleted file mode 100644 index f86b5a2d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_3.html deleted file mode 100644 index 76710371..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ILOAD_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IMUL.html deleted file mode 100644 index fffaafef..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IMUL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IMUL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IMUL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IMUL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INEG.html deleted file mode 100644 index 4e658bcd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INEG.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INEG - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INEG

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INEG
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INSTANCEOF.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INSTANCEOF.html deleted file mode 100644 index 71996ca3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INSTANCEOF.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INSTANCEOF - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INSTANCEOF

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INSTANCEOF
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEDYNAMIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEDYNAMIC.html deleted file mode 100644 index 30efa8ef..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEDYNAMIC.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEINTERFACE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEINTERFACE.html deleted file mode 100644 index fcc311ed..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEINTERFACE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKESPECIAL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKESPECIAL.html deleted file mode 100644 index cbed08f2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKESPECIAL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKESTATIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKESTATIC.html deleted file mode 100644 index 69eaa01c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKESTATIC.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEVIRTUAL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEVIRTUAL.html deleted file mode 100644 index 5dd679a8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_INVOKEVIRTUAL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IOR.html deleted file mode 100644 index de1cba3c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IOR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IOR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IOR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IOR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IREM.html deleted file mode 100644 index c547ffd2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IREM.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IREM - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IREM

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IREM
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IRETURN.html deleted file mode 100644 index dd01327a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IRETURN.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IRETURN - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IRETURN

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IRETURN
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISHL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISHL.html deleted file mode 100644 index 674462c5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISHL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISHL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISHL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISHL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISHR.html deleted file mode 100644 index bab3106c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISHR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISHR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISHR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISHR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE.html deleted file mode 100644 index 3b0a3570..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_0.html deleted file mode 100644 index dc2b7bbf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_1.html deleted file mode 100644 index fd89d79b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_2.html deleted file mode 100644 index d2355268..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_3.html deleted file mode 100644 index d8211947..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISTORE_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISUB.html deleted file mode 100644 index cd6baa30..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_ISUB.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_ISUB - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_ISUB

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_ISUB
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IUSHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IUSHR.html deleted file mode 100644 index 805eed52..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IUSHR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IUSHR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IUSHR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IUSHR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IXOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IXOR.html deleted file mode 100644 index 4e9b8668..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_IXOR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_IXOR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_IXOR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_IXOR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_JSR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_JSR.html deleted file mode 100644 index c313fdd9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_JSR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_JSR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_JSR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_JSR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_JSR_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_JSR_W.html deleted file mode 100644 index 3f6f86d9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_JSR_W.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_JSR_W - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_JSR_W

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_JSR_W
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2D.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2D.html deleted file mode 100644 index eb7b4dfa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2D.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_L2D - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_L2D

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_L2D
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2F.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2F.html deleted file mode 100644 index 4cdcee72..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2F.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_L2F - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_L2F

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_L2F
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2I.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2I.html deleted file mode 100644 index 7503c500..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_L2I.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_L2I - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_L2I

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_L2I
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LADD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LADD.html deleted file mode 100644 index f0d37348..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LADD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LADD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LADD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LADD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LALOAD.html deleted file mode 100644 index aa488e55..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LAND.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LAND.html deleted file mode 100644 index a426d133..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LAND.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LAND - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LAND

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LAND
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LASTORE.html deleted file mode 100644 index 664fd2fc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCMP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCMP.html deleted file mode 100644 index dc265bd8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCMP.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LCMP - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LCMP

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LCMP
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCONST_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCONST_0.html deleted file mode 100644 index 6b75f588..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCONST_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCONST_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCONST_1.html deleted file mode 100644 index ac925544..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LCONST_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC.html deleted file mode 100644 index 50e1ad5a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LDC

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LDC
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC2_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC2_W.html deleted file mode 100644 index 1be868ea..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC2_W.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC_W.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC_W.html deleted file mode 100644 index 99e12057..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDC_W.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDIV.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDIV.html deleted file mode 100644 index 845c2b99..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LDIV.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LDIV - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LDIV

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LDIV
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD.html deleted file mode 100644 index aa709ae4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_0.html deleted file mode 100644 index afd00e1f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_1.html deleted file mode 100644 index 1e6d2a5c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_2.html deleted file mode 100644 index 514a6c61..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_3.html deleted file mode 100644 index c7783186..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LLOAD_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LMUL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LMUL.html deleted file mode 100644 index add0901e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LMUL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LMUL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LMUL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LMUL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LNEG.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LNEG.html deleted file mode 100644 index 45f7ed8d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LNEG.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LNEG - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LNEG

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LNEG
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LOOKUPSWITCH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LOOKUPSWITCH.html deleted file mode 100644 index 762d01fd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LOOKUPSWITCH.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LOR.html deleted file mode 100644 index 7a273fe5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LOR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LOR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LOR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LOR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LREM.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LREM.html deleted file mode 100644 index 3db9cbcc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LREM.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LREM - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LREM

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LREM
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LRETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LRETURN.html deleted file mode 100644 index d9b4d5cf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LRETURN.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LRETURN - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LRETURN

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LRETURN
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSHL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSHL.html deleted file mode 100644 index 1048a62a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSHL.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSHL - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSHL

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSHL
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSHR.html deleted file mode 100644 index 97803512..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSHR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSHR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSHR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSHR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE.html deleted file mode 100644 index 3d25c1f1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_0.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_0.html deleted file mode 100644 index 5223e209..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_0.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_0 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_0

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_0
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_1.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_1.html deleted file mode 100644 index 2a50c188..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_1.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_1 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_1

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_1
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_2.html deleted file mode 100644 index 117b5cec..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_3.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_3.html deleted file mode 100644 index a16267e6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSTORE_3.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_3 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_3

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_3
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSUB.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSUB.html deleted file mode 100644 index c83bb606..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LSUB.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LSUB - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LSUB

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LSUB
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LUSHR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LUSHR.html deleted file mode 100644 index ec6ed78e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LUSHR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LUSHR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LUSHR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LUSHR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LXOR.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LXOR.html deleted file mode 100644 index e737985e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_LXOR.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_LXOR - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_LXOR

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_LXOR
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MONITORENTER.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MONITORENTER.html deleted file mode 100644 index c3ceea42..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MONITORENTER.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_MONITORENTER - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_MONITORENTER

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_MONITORENTER
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MONITOREXIT.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MONITOREXIT.html deleted file mode 100644 index 4d5bddb8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MONITOREXIT.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_MONITOREXIT - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_MONITOREXIT

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_MONITOREXIT
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MULTIANEWARRAY.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MULTIANEWARRAY.html deleted file mode 100644 index 73ee7b67..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_MULTIANEWARRAY.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_MULTIANEWARRAY - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_MULTIANEWARRAY

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_MULTIANEWARRAY
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NEW.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NEW.html deleted file mode 100644 index 42f580a3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NEW.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_NEW - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_NEW

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_NEW
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NEWARRAY.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NEWARRAY.html deleted file mode 100644 index d7a79371..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NEWARRAY.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_NEWARRAY - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_NEWARRAY

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_NEWARRAY
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NOP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NOP.html deleted file mode 100644 index f1153632..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_NOP.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_NOP - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_NOP

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_NOP
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_POP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_POP.html deleted file mode 100644 index 3870e956..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_POP.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_POP - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_POP

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_POP
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_POP2.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_POP2.html deleted file mode 100644 index 1f5905e3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_POP2.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_POP2 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_POP2

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_POP2
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_PUTFIELD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_PUTFIELD.html deleted file mode 100644 index 4acdeed3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_PUTFIELD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_PUTSTATIC.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_PUTSTATIC.html deleted file mode 100644 index bf6e92f9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_PUTSTATIC.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_RET.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_RET.html deleted file mode 100644 index 81a82ad2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_RET.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_RET - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_RET

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_RET
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_RETURN.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_RETURN.html deleted file mode 100644 index ffae05d3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_RETURN.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_RETURN - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_RETURN

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_RETURN
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SALOAD.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SALOAD.html deleted file mode 100644 index 6a3f2b06..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SALOAD.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_SALOAD - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_SALOAD

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_SALOAD
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SASTORE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SASTORE.html deleted file mode 100644 index 2345288c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SASTORE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_SASTORE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_SASTORE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_SASTORE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SIPUSH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SIPUSH.html deleted file mode 100644 index 00335602..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SIPUSH.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_SIPUSH - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_SIPUSH

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_SIPUSH
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SWAP.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SWAP.html deleted file mode 100644 index fd999ce7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_SWAP.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_SWAP - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_SWAP

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_SWAP
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_TABLESWITCH.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_TABLESWITCH.html deleted file mode 100644 index ae79ae3d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_TABLESWITCH.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_WIDE.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_WIDE.html deleted file mode 100644 index 63ac384b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.I_WIDE.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.If.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.If.html deleted file mode 100644 index d92da8a7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.If.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.If - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.If

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IfUnary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IfUnary.html deleted file mode 100644 index 055d9acf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IfUnary.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.IfUnary - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.IfUnary

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ImmediateConstant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ImmediateConstant.html deleted file mode 100644 index c57b77ec..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ImmediateConstant.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.ImmediateConstant - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.ImmediateConstant

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ImmediateSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ImmediateSpec.html deleted file mode 100644 index 1c815281..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.ImmediateSpec.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.ImmediateSpec - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.ImmediateSpec

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IncrementInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IncrementInstruction.html deleted file mode 100644 index 632e34cd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IncrementInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index.html deleted file mode 100644 index 5beb21f1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index.html +++ /dev/null @@ -1,463 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Index - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Index

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index08.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index08.html deleted file mode 100644 index 48eae38d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index08.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Index08 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Index08

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index16.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index16.html deleted file mode 100644 index 09467fc4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Index16.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Index16 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Index16

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IndexConst.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IndexConst.html deleted file mode 100644 index d1daceaf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.IndexConst.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.IndexConst - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.IndexConst

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.InlineAssignInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.InlineAssignInstruction.html deleted file mode 100644 index c88997f0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.InlineAssignInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.InterfaceConstantPoolMethodIndexAccessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.InterfaceConstantPoolMethodIndexAccessor.html deleted file mode 100644 index 425deec8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.InterfaceConstantPoolMethodIndexAccessor.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexAccessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexAccessor.html deleted file mode 100644 index eba07a71..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexAccessor.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexAccessor - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexAccessor

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexLoad.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexLoad.html deleted file mode 100644 index 6d1ee607..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexLoad.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexLoad - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexLoad

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexStore.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexStore.html deleted file mode 100644 index 7c5db270..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableConstIndexStore.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexStore - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexStore

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Accessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Accessor.html deleted file mode 100644 index e3482db3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Accessor.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Accessor - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Accessor

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Load.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Load.html deleted file mode 100644 index 022de7de..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Load.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Load - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Load

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Store.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Store.html deleted file mode 100644 index 08ab4a4c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableIndex08Store.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Store - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Store

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableTableIndexAccessor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableTableIndexAccessor.html deleted file mode 100644 index 14c39c9f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.LocalVariableTableIndexAccessor.html +++ /dev/null @@ -1,396 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableTableIndexAccessor - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableTableIndexAccessor

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.MethodCall.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.MethodCall.html deleted file mode 100644 index 734712aa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.MethodCall.html +++ /dev/null @@ -1,240 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.MethodCall - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.MethodCall

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.MultiAssignInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.MultiAssignInstruction.html deleted file mode 100644 index 731744c9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.MultiAssignInstruction.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.New.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.New.html deleted file mode 100644 index 373270c9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.New.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.New - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.New

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Operator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Operator.html deleted file mode 100644 index db9e9ece..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Operator.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Operator - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Operator

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.OperatorInstruction.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.OperatorInstruction.html deleted file mode 100644 index 1c6b4597..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.OperatorInstruction.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.OperatorInstruction - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.OperatorInstruction

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.PopSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.PopSpec.html deleted file mode 100644 index 599858f5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.PopSpec.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.PopSpec - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.PopSpec

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.PushSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.PushSpec.html deleted file mode 100644 index 1af97681..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.PushSpec.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.PushSpec - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.PushSpec

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Return.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Return.html deleted file mode 100644 index b0529b56..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Return.html +++ /dev/null @@ -1,175 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Return - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Return

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Switch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Switch.html deleted file mode 100644 index 2c4f65c0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Switch.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.Switch - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.Switch

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.TypeSpec.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.TypeSpec.html deleted file mode 100644 index 50ca04c1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.TypeSpec.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Unary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Unary.html deleted file mode 100644 index f433af0c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.Unary.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.Unary - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.Unary

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnaryOperator.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnaryOperator.html deleted file mode 100644 index fe0f2a65..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnaryOperator.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.UnaryOperator - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.UnaryOperator

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnconditionalBranch.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnconditionalBranch.html deleted file mode 100644 index 838a9116..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnconditionalBranch.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnconditionalBranch16.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnconditionalBranch16.html deleted file mode 100644 index 0744953f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.UnconditionalBranch16.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch16 - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch16

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.VirtualMethodCall.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.VirtualMethodCall.html deleted file mode 100644 index 9614d044..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.VirtualMethodCall.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.instruction.InstructionSet.VirtualMethodCall - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.instruction.InstructionSet.VirtualMethodCall

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.html deleted file mode 100644 index c1b7be07..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionSet.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionSet - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionSet

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionSet
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionTransformer.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionTransformer.html deleted file mode 100644 index 255ee5ce..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/class-use/InstructionTransformer.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.instruction.InstructionTransformer - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.instruction.InstructionTransformer

      -
      -
      No usage of com.amd.aparapi.internal.instruction.InstructionTransformer
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-frame.html deleted file mode 100644 index 61513257..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-frame.html +++ /dev/null @@ -1,306 +0,0 @@ - - - - - -com.amd.aparapi.internal.instruction - - - - -

      com.amd.aparapi.internal.instruction

      -
      -

      Interfaces

      - -

      Classes

      - -

      Enums

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-summary.html deleted file mode 100644 index 2200c7f3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-summary.html +++ /dev/null @@ -1,1293 +0,0 @@ - - - - - -com.amd.aparapi.internal.instruction - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.instruction

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-tree.html deleted file mode 100644 index 7462c70c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-tree.html +++ /dev/null @@ -1,547 +0,0 @@ - - - - - -com.amd.aparapi.internal.instruction Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.instruction

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -

      Interface Hierarchy

      - -

      Enum Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-use.html deleted file mode 100644 index 5c127d9b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/instruction/package-use.html +++ /dev/null @@ -1,470 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.instruction - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.instruction

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/ConfigJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/ConfigJNI.html deleted file mode 100644 index a47d656a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/ConfigJNI.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - -ConfigJNI - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.jni
      -

      Class ConfigJNI

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.jni.ConfigJNI
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        Config
        -
        -
        -
        -
        public abstract class ConfigJNI
        -extends java.lang.Object
        -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Field Summary

          - - - - - - - - - - - - - - - - - - - - - - -
          Fields 
          Modifier and TypeField and Description
          static booleanenableProfiling -
          Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer.
          -
          static booleanenableProfilingCSV -
          Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer, this information will be written to CSV file - - Usage -Dcom.amd.aparapi.enableProfiling={true|false}
          -
          static booleanenableVerboseJNI -
          Allows the user to request that verbose JNI messages be dumped to stderr.
          -
          static booleanenableVerboseJNIOpenCLResourceTracking -
          Allows the user to request tracking of opencl resources.
          -
          -
        • -
        - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          ConfigJNI() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            enableProfiling

            -
            public static final boolean enableProfiling
            -
            Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer. - - Usage -Dcom.amd.aparapi.enableProfiling={true|false}
            -
          • -
          - - - -
            -
          • -

            enableProfilingCSV

            -
            public static final boolean enableProfilingCSV
            -
            Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer, this information will be written to CSV file - - Usage -Dcom.amd.aparapi.enableProfiling={true|false}
            -
          • -
          - - - -
            -
          • -

            enableVerboseJNI

            -
            public static final boolean enableVerboseJNI
            -
            Allows the user to request that verbose JNI messages be dumped to stderr. - - Usage -Dcom.amd.aparapi.enableVerboseJNI={true|false}
            -
          • -
          - - - -
            -
          • -

            enableVerboseJNIOpenCLResourceTracking

            -
            public static final boolean enableVerboseJNIOpenCLResourceTracking
            -
            Allows the user to request tracking of opencl resources. - - This is really a debugging option to help locate leaking OpenCL resources, this will be dumped to stderr. - - Usage -Dcom.amd.aparapi.enableOpenCLResourceTracking={true|false}
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ConfigJNI

            -
            public ConfigJNI()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/KernelArgJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/KernelArgJNI.html deleted file mode 100644 index c055ef46..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/KernelArgJNI.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - -KernelArgJNI - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.jni
      -

      Class KernelArgJNI

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.jni.KernelArgJNI
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        KernelArg
        -
        -
        -
        -
        public abstract class KernelArgJNI
        -extends java.lang.Object
        -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          KernelArgJNI() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            KernelArgJNI

            -
            public KernelArgJNI()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/KernelRunnerJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/KernelRunnerJNI.html deleted file mode 100644 index 62ffb939..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/KernelRunnerJNI.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - -KernelRunnerJNI - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.jni
      -

      Class KernelRunnerJNI

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.jni.KernelRunnerJNI
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        KernelRunner
        -
        -
        -
        -
        public abstract class KernelRunnerJNI
        -extends java.lang.Object
        -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          KernelRunnerJNI() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            KernelRunnerJNI

            -
            public KernelRunnerJNI()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/OpenCLJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/OpenCLJNI.html deleted file mode 100644 index be113b32..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/OpenCLJNI.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - -OpenCLJNI - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.jni
      -

      Class OpenCLJNI

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.jni.OpenCLJNI
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        OpenCLKernel, OpenCLLoader, OpenCLPlatform, OpenCLProgram
        -
        -
        -
        -
        public abstract class OpenCLJNI
        -extends java.lang.Object
        -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          OpenCLJNI() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLJNI

            -
            public OpenCLJNI()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/RangeJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/RangeJNI.html deleted file mode 100644 index e5ecef41..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/RangeJNI.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - -RangeJNI - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.jni
      -

      Class RangeJNI

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.jni.RangeJNI
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        Range
        -
        -
        -
        -
        public abstract class RangeJNI
        -extends java.lang.Object
        -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          RangeJNI() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            RangeJNI

            -
            public RangeJNI()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/ConfigJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/ConfigJNI.html deleted file mode 100644 index 62103df6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/ConfigJNI.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.jni.ConfigJNI - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.jni.ConfigJNI

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/KernelArgJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/KernelArgJNI.html deleted file mode 100644 index 408d3a17..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/KernelArgJNI.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.jni.KernelArgJNI - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.jni.KernelArgJNI

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/KernelRunnerJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/KernelRunnerJNI.html deleted file mode 100644 index 72ce068b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/KernelRunnerJNI.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.jni.KernelRunnerJNI - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.jni.KernelRunnerJNI

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/OpenCLJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/OpenCLJNI.html deleted file mode 100644 index 5b1f9ef0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/OpenCLJNI.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.jni.OpenCLJNI - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.jni.OpenCLJNI

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/RangeJNI.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/RangeJNI.html deleted file mode 100644 index 25b4bc68..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/class-use/RangeJNI.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.jni.RangeJNI - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.jni.RangeJNI

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-frame.html deleted file mode 100644 index d849553e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-frame.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -com.amd.aparapi.internal.jni - - - - -

      com.amd.aparapi.internal.jni

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-summary.html deleted file mode 100644 index c86b55ba..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-summary.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -com.amd.aparapi.internal.jni - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.jni

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Class Summary 
        ClassDescription
        ConfigJNI -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
        KernelArgJNI -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
        KernelRunnerJNI -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
        OpenCLJNI -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
        RangeJNI -
        This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-tree.html deleted file mode 100644 index 276b4d0c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-tree.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - -com.amd.aparapi.internal.jni Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.jni

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-use.html deleted file mode 100644 index eba38731..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/jni/package-use.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.jni - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.jni

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/KernelArg.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/KernelArg.html deleted file mode 100644 index 8e55fedc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/KernelArg.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - -KernelArg - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.kernel
      -

      Class KernelArg

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class KernelArg
        -extends KernelArgJNI
        -
        Each field (or captured field in the case of an anonymous inner class) referenced by any bytecode reachable from the users Kernel.run(), will - need to be represented as a KernelArg.
        -
        Author:
        -
        gfrost
        -
        See Also:
        Kernel.execute(int _globalSize)
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/KernelRunner.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/KernelRunner.html deleted file mode 100644 index 8c82fd26..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/KernelRunner.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - -KernelRunner - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.kernel
      -

      Class KernelRunner

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class KernelRunner
        -extends KernelRunnerJNI
        -
        The class is responsible for executing Kernel implementations.
        - - The KernelRunner is the real workhorse for Aparapi. Each Kernel instance creates a single - KernelRunner to encapsulate state and to help coordinate interactions between the Kernel - and it's execution logic.
        - - The KernelRunner is created lazily as a result of calling Kernel.execute(). A this - time the ExecutionMode is consulted to determine the default requested mode. This will dictate how - the KernelRunner will attempt to execute the Kernel
        -
        Author:
        -
        gfrost
        -
        See Also:
        Kernel.execute(int _globalSize)
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          KernelRunner(Kernel _kernel) -
          Create a KernelRunner for a specific Kernel instance.
          -
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voiddispose() -
          Kernel.dispose() delegates to KernelRunner.dispose() which delegates to disposeJNI() to actually close JNI data structures.
          -
          Kernelexecute(Kernel.Entry entry, - Range _range, - int _passes) 
          Kernelexecute(java.lang.String _entrypointName, - Range _range, - int _passes) 
          voidget(java.lang.Object array) -
          Enqueue a request to return this array from the GPU.
          -
          longgetAccumulatedExecutionTime() -
          Determine the accumulated execution time of all previous Kernel.execute(range) calls.
          -
          longgetConversionTime() -
          Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call.
          -
          longgetExecutionTime() -
          Determine the execution time of the previous Kernel.execute(range) call.
          -
          java.util.List<ProfileInfo>getProfileInfo() 
          booleanisExplicit() 
          voidput(java.lang.Object array) -
          Tag this array so that it is explicitly enqueued before the kernel is executed.
          -
          voidsetExplicit(boolean _explicit) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            KernelRunner

            -
            public KernelRunner(Kernel _kernel)
            -
            Create a KernelRunner for a specific Kernel instance.
            -
            Parameters:
            _kernel -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            dispose

            -
            public void dispose()
            -
            Kernel.dispose() delegates to KernelRunner.dispose() which delegates to disposeJNI() to actually close JNI data structures.
            -
            See Also:
            KernelRunner#disposeJNI()
            -
          • -
          - - - - - - - -
            -
          • -

            execute

            -
            public Kernel execute(java.lang.String _entrypointName,
            -             Range _range,
            -             int _passes)
            -
          • -
          - - - - - - - -
            -
          • -

            getProfileInfo

            -
            public java.util.List<ProfileInfo> getProfileInfo()
            -
          • -
          - - - - - - - -
            -
          • -

            setExplicit

            -
            public void setExplicit(boolean _explicit)
            -
          • -
          - - - -
            -
          • -

            isExplicit

            -
            public boolean isExplicit()
            -
          • -
          - - - -
            -
          • -

            getConversionTime

            -
            public long getConversionTime()
            -
            Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call.
            -
            Returns:
            The time spent preparing the kernel for execution using GPU
            -
          • -
          - - - -
            -
          • -

            getExecutionTime

            -
            public long getExecutionTime()
            -
            Determine the execution time of the previous Kernel.execute(range) call.
            -
            Returns:
            The time spent executing the kernel (ms)
            -
          • -
          - - - -
            -
          • -

            getAccumulatedExecutionTime

            -
            public long getAccumulatedExecutionTime()
            -
            Determine the accumulated execution time of all previous Kernel.execute(range) calls.
            -
            Returns:
            The accumulated time spent executing this kernel (ms)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/class-use/KernelArg.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/class-use/KernelArg.html deleted file mode 100644 index 21983c5b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/class-use/KernelArg.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.kernel.KernelArg - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.kernel.KernelArg

      -
      -
      No usage of com.amd.aparapi.internal.kernel.KernelArg
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/class-use/KernelRunner.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/class-use/KernelRunner.html deleted file mode 100644 index b4317798..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/class-use/KernelRunner.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.kernel.KernelRunner - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.kernel.KernelRunner

      -
      -
      No usage of com.amd.aparapi.internal.kernel.KernelRunner
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-frame.html deleted file mode 100644 index 89c38d51..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -com.amd.aparapi.internal.kernel - - - - -

      com.amd.aparapi.internal.kernel

      -
      -

      Classes

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-summary.html deleted file mode 100644 index b6bb24db..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -com.amd.aparapi.internal.kernel - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.kernel

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - -
        Class Summary 
        ClassDescription
        KernelArg -
        Each field (or captured field in the case of an anonymous inner class) referenced by any bytecode reachable from the users Kernel.run(), will - need to be represented as a KernelArg.
        -
        KernelRunner -
        The class is responsible for executing Kernel implementations.
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-tree.html deleted file mode 100644 index daad6545..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-tree.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - -com.amd.aparapi.internal.kernel Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.kernel

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-use.html deleted file mode 100644 index 1ba55ea4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/kernel/package-use.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.kernel - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.kernel

      -
      -
      No usage of com.amd.aparapi.internal.kernel
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.Access.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.Access.html deleted file mode 100644 index 77f2d4f2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.Access.html +++ /dev/null @@ -1,531 +0,0 @@ - - - - - -ClassModel.Access - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Enum ClassModel.Access

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • java.lang.Enum<ClassModel.Access>
        • -
        • -
            -
          • com.amd.aparapi.internal.model.ClassModel.Access
          • -
          -
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        java.io.Serializable, java.lang.Comparable<ClassModel.Access>
        -
        -
        -
        Enclosing class:
        -
        ClassModel
        -
        -
        -
        -
        public static enum ClassModel.Access
        -extends java.lang.Enum<ClassModel.Access>
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          booleanbitIsSet(int _accessFlags) 
          java.lang.Stringconvert(int _accessFlags) 
          static ClassModel.AccessvalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static ClassModel.Access[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            values

            -
            public static ClassModel.Access[] values()
            -
            Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
            -for (ClassModel.Access c : ClassModel.Access.values())
            -    System.out.println(c);
            -
            -
            Returns:
            an array containing the constants of this enum type, in -the order they are declared
            -
          • -
          - - - -
            -
          • -

            valueOf

            -
            public static ClassModel.Access valueOf(java.lang.String name)
            -
            Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
            -
            Parameters:
            name - the name of the enum constant to be returned.
            -
            Returns:
            the enum constant with the specified name
            -
            Throws:
            -
            java.lang.IllegalArgumentException - if this enum type has no constant -with the specified name
            -
            java.lang.NullPointerException - if the argument is null
            -
          • -
          - - - -
            -
          • -

            bitIsSet

            -
            public boolean bitIsSet(int _accessFlags)
            -
          • -
          - - - -
            -
          • -

            convert

            -
            public java.lang.String convert(int _accessFlags)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.AttributePoolEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.AttributePoolEntry.html deleted file mode 100644 index 949c2fd3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.AttributePoolEntry.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - -ClassModel.AttributePool.AttributePoolEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.AttributePoolEntry

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry
        • -
        -
      • -
      - -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.AttributePoolEntry

            -
            public ClassModel.AttributePool.AttributePoolEntry(ByteReader _byteReader,
            -                                           int _nameIndex,
            -                                           int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - - - - - -
            -
          • -

            getLength

            -
            public int getLength()
            -
          • -
          - - - -
            -
          • -

            getName

            -
            public java.lang.String getName()
            -
          • -
          - - - -
            -
          • -

            getNameIndex

            -
            public int getNameIndex()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry.html deleted file mode 100644 index 1f992816..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry.html +++ /dev/null @@ -1,312 +0,0 @@ - - - - - -ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry

            -
            public ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry(ByteReader _byteReader)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - - - - - -
            -
          • -

            getClassIndex

            -
            public int getClassIndex()
            -
          • -
          - - - -
            -
          • -

            getEnd

            -
            public int getEnd()
            -
          • -
          - - - -
            -
          • -

            getHandler

            -
            public int getHandler()
            -
          • -
          - - - -
            -
          • -

            getStart

            -
            public int getStart()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.CodeEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.CodeEntry.html deleted file mode 100644 index 17b35eeb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.CodeEntry.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - -ClassModel.AttributePool.CodeEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.CodeEntry

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.ConstantValueEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.ConstantValueEntry.html deleted file mode 100644 index def512d8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.ConstantValueEntry.html +++ /dev/null @@ -1,276 +0,0 @@ - - - - - -ClassModel.AttributePool.ConstantValueEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.ConstantValueEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.ConstantValueEntry

            -
            public ClassModel.AttributePool.ConstantValueEntry(ByteReader _byteReader,
            -                                           int _nameIndex,
            -                                           int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getIndex

            -
            public int getIndex()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.DeprecatedEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.DeprecatedEntry.html deleted file mode 100644 index 68a90850..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.DeprecatedEntry.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -ClassModel.AttributePool.DeprecatedEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.DeprecatedEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.DeprecatedEntry

            -
            public ClassModel.AttributePool.DeprecatedEntry(ByteReader _byteReader,
            -                                        int _nameIndex,
            -                                        int _length)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.EnclosingMethodEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.EnclosingMethodEntry.html deleted file mode 100644 index 9512f822..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.EnclosingMethodEntry.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -ClassModel.AttributePool.EnclosingMethodEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.EnclosingMethodEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.EnclosingMethodEntry

            -
            public ClassModel.AttributePool.EnclosingMethodEntry(ByteReader _byteReader,
            -                                             int _nameIndex,
            -                                             int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getClassIndex

            -
            public int getClassIndex()
            -
          • -
          - - - -
            -
          • -

            getMethodIndex

            -
            public int getMethodIndex()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.ExceptionEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.ExceptionEntry.html deleted file mode 100644 index 02e92211..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.ExceptionEntry.html +++ /dev/null @@ -1,264 +0,0 @@ - - - - - -ClassModel.AttributePool.ExceptionEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.ExceptionEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.ExceptionEntry

            -
            public ClassModel.AttributePool.ExceptionEntry(ByteReader _byteReader,
            -                                       int _nameIndex,
            -                                       int _length)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo.html deleted file mode 100644 index 14f4282a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - -ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo

            -
            public ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo(ByteReader _byteReader)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getInnerAccess

            -
            public int getInnerAccess()
            -
          • -
          - - - -
            -
          • -

            getInnerIndex

            -
            public int getInnerIndex()
            -
          • -
          - - - -
            -
          • -

            getInnerNameIndex

            -
            public int getInnerNameIndex()
            -
          • -
          - - - -
            -
          • -

            getOuterIndex

            -
            public int getOuterIndex()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.InnerClassesEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.InnerClassesEntry.html deleted file mode 100644 index 4c3349ce..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.InnerClassesEntry.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - -ClassModel.AttributePool.InnerClassesEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.InnerClassesEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.InnerClassesEntry

            -
            public ClassModel.AttributePool.InnerClassesEntry(ByteReader _byteReader,
            -                                          int _nameIndex,
            -                                          int _length)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair.html deleted file mode 100644 index ec568c8b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair

            -
            public ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair(ByteReader _byteReader)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getLineNumber

            -
            public int getLineNumber()
            -
          • -
          - - - -
            -
          • -

            getStart

            -
            public int getStart()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LineNumberTableEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LineNumberTableEntry.html deleted file mode 100644 index 029c56ad..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LineNumberTableEntry.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - -ClassModel.AttributePool.LineNumberTableEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.LineNumberTableEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.LineNumberTableEntry

            -
            public ClassModel.AttributePool.LineNumberTableEntry(ByteReader _byteReader,
            -                                             int _nameIndex,
            -                                             int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getSourceLineNumber

            -
            public int getSourceLineNumber(int _start,
            -                      boolean _exact)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo.html deleted file mode 100644 index 1ff5d517..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - -ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo

            -
            public ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo(ByteReader _byteReader)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDescriptorIndex

            -
            public int getDescriptorIndex()
            -
          • -
          - - - -
            -
          • -

            getLength

            -
            public int getLength()
            -
          • -
          - - - -
            -
          • -

            getNameIndex

            -
            public int getNameIndex()
            -
          • -
          - - - -
            -
          • -

            getStart

            -
            public int getStart()
            -
          • -
          - - - -
            -
          • -

            getVariableIndex

            -
            public int getVariableIndex()
            -
          • -
          - - - -
            -
          • -

            getVariableName

            -
            public java.lang.String getVariableName()
            -
          • -
          - - - -
            -
          • -

            getVariableDescriptor

            -
            public java.lang.String getVariableDescriptor()
            -
          • -
          - - - -
            -
          • -

            getEnd

            -
            public int getEnd()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LocalVariableTableEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LocalVariableTableEntry.html deleted file mode 100644 index efc7b654..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.LocalVariableTableEntry.html +++ /dev/null @@ -1,328 +0,0 @@ - - - - - -ClassModel.AttributePool.LocalVariableTableEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.LocalVariableTableEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.LocalVariableTableEntry

            -
            public ClassModel.AttributePool.LocalVariableTableEntry(ByteReader _byteReader,
            -                                                int _nameIndex,
            -                                                int _length)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.OtherEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.OtherEntry.html deleted file mode 100644 index 64b2b766..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.OtherEntry.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -ClassModel.AttributePool.OtherEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.OtherEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.OtherEntry

            -
            public ClassModel.AttributePool.OtherEntry(ByteReader _byteReader,
            -                                   int _nameIndex,
            -                                   int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getBytes

            -
            public byte[] getBytes()
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.PoolEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.PoolEntry.html deleted file mode 100644 index 23669833..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.PoolEntry.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - -ClassModel.AttributePool.PoolEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.PoolEntry<T>

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.PoolEntry

            -
            public ClassModel.AttributePool.PoolEntry(ByteReader _byteReader,
            -                                  int _nameIndex,
            -                                  int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getPool

            -
            public java.util.List<T> getPool()
            -
          • -
          - - - -
            -
          • -

            iterator

            -
            public java.util.Iterator<T> iterator()
            -
            -
            Specified by:
            -
            iterator in interface java.lang.Iterable<T>
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue.html deleted file mode 100644 index d7a02456..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue.html deleted file mode 100644 index affcd9c8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue.html deleted file mode 100644 index 1d7ee8df..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue.html deleted file mode 100644 index 3a726242..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue.html deleted file mode 100644 index fa2f6458..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue.html +++ /dev/null @@ -1,275 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue

            -
            public ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue(int _tag,
            -                                                                                               ByteReader _byteReader)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getConstNameIndex

            -
            public int getConstNameIndex()
            -
          • -
          - - - -
            -
          • -

            getTypeNameIndex

            -
            public int getTypeNameIndex()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.html deleted file mode 100644 index 05b2d874..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair

            -
            public ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair(ByteReader _byteReader)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.html deleted file mode 100644 index c68ff93d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.html +++ /dev/null @@ -1,292 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo

            -
            public ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo(ByteReader _byteReader)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getTypeIndex

            -
            public int getTypeIndex()
            -
          • -
          - - - -
            -
          • -

            getTypeDescriptor

            -
            public java.lang.String getTypeDescriptor()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.html deleted file mode 100644 index 79dd9844..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.RuntimeAnnotationsEntry.html +++ /dev/null @@ -1,283 +0,0 @@ - - - - - -ClassModel.AttributePool.RuntimeAnnotationsEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.RuntimeAnnotationsEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.RuntimeAnnotationsEntry

            -
            public ClassModel.AttributePool.RuntimeAnnotationsEntry(ByteReader _byteReader,
            -                                                int _nameIndex,
            -                                                int _length)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SignatureEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SignatureEntry.html deleted file mode 100644 index b1b441d1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SignatureEntry.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -ClassModel.AttributePool.SignatureEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.SignatureEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.SignatureEntry

            -
            public ClassModel.AttributePool.SignatureEntry(ByteReader _byteReader,
            -                                       int _nameIndex,
            -                                       int _length)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SourceFileEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SourceFileEntry.html deleted file mode 100644 index 5916943b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SourceFileEntry.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -ClassModel.AttributePool.SourceFileEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.SourceFileEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.SourceFileEntry

            -
            public ClassModel.AttributePool.SourceFileEntry(ByteReader _byteReader,
            -                                        int _nameIndex,
            -                                        int _length)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getSourceFileIndex

            -
            public int getSourceFileIndex()
            -
          • -
          - - - -
            -
          • -

            getSourceFileName

            -
            public java.lang.String getSourceFileName()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SyntheticEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SyntheticEntry.html deleted file mode 100644 index c8a4c438..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.SyntheticEntry.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -ClassModel.AttributePool.SyntheticEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool.SyntheticEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.AttributePool.SyntheticEntry

            -
            public ClassModel.AttributePool.SyntheticEntry(ByteReader _byteReader,
            -                                       int _nameIndex,
            -                                       int _length)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.html deleted file mode 100644 index 0bafb0b8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.AttributePool.html +++ /dev/null @@ -1,439 +0,0 @@ - - - - - -ClassModel.AttributePool - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.AttributePool

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.AttributePool
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        ClassModel
        -
        -
        -
        -
        public class ClassModel.AttributePool
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelField.html deleted file mode 100644 index 1f79640b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelField.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - -ClassModel.ClassModelField - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ClassModelField

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.ClassModelField
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        ClassModel
        -
        -
        -
        -
        public class ClassModel.ClassModelField
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ClassModelField

            -
            public ClassModel.ClassModelField(ByteReader _byteReader,
            -                          int _index)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getAccessFlags

            -
            public int getAccessFlags()
            -
          • -
          - - - - - - - -
            -
          • -

            getDescriptor

            -
            public java.lang.String getDescriptor()
            -
          • -
          - - - -
            -
          • -

            getDescriptorIndex

            -
            public int getDescriptorIndex()
            -
          • -
          - - - - - - - -
            -
          • -

            getIndex

            -
            public int getIndex()
            -
          • -
          - - - -
            -
          • -

            getName

            -
            public java.lang.String getName()
            -
          • -
          - - - -
            -
          • -

            getNameIndex

            -
            public int getNameIndex()
            -
          • -
          - - - - - - - -
            -
          • -

            getDeclaringClass

            -
            public java.lang.Class<?> getDeclaringClass()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelInterface.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelInterface.html deleted file mode 100644 index fe57e67b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelInterface.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -ClassModel.ClassModelInterface - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ClassModelInterface

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.ClassModelInterface
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        ClassModel
        -
        -
        -
        -
        public class ClassModel.ClassModelInterface
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelMethod.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelMethod.html deleted file mode 100644 index 487d8982..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ClassModelMethod.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - - -ClassModel.ClassModelMethod - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ClassModelMethod

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        ClassModel
        -
        -
        -
        -
        public class ClassModel.ClassModelMethod
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ClassEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ClassEntry.html deleted file mode 100644 index 58a0a734..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ClassEntry.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - - -ClassModel.ConstantPool.ClassEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.ClassEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.ClassEntry

            -
            public ClassModel.ConstantPool.ClassEntry(ByteReader _byteReader,
            -                                  int _slot)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.DoubleEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.DoubleEntry.html deleted file mode 100644 index fa765d8f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.DoubleEntry.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -ClassModel.ConstantPool.DoubleEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.DoubleEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.DoubleEntry

            -
            public ClassModel.ConstantPool.DoubleEntry(ByteReader _byteReader,
            -                                   int _slot)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getDoubleValue

            -
            public double getDoubleValue()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.EmptyEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.EmptyEntry.html deleted file mode 100644 index dec1b48b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.EmptyEntry.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - -ClassModel.ConstantPool.EmptyEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.EmptyEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.EmptyEntry

            -
            public ClassModel.ConstantPool.EmptyEntry(ByteReader _byteReader,
            -                                  int _slot)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.Entry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.Entry.html deleted file mode 100644 index ca90b654..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.Entry.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - -ClassModel.ConstantPool.Entry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.Entry

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry
        • -
        -
      • -
      - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.FieldEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.FieldEntry.html deleted file mode 100644 index 995804b2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.FieldEntry.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -ClassModel.ConstantPool.FieldEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.FieldEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.FieldEntry

            -
            public ClassModel.ConstantPool.FieldEntry(ByteReader _byteReader,
            -                                  int _slot)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.FloatEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.FloatEntry.html deleted file mode 100644 index 523bbb72..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.FloatEntry.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -ClassModel.ConstantPool.FloatEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.FloatEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.FloatEntry

            -
            public ClassModel.ConstantPool.FloatEntry(ByteReader _byteReader,
            -                                  int _slot)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getFloatValue

            -
            public float getFloatValue()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.IntegerEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.IntegerEntry.html deleted file mode 100644 index d1823813..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.IntegerEntry.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -ClassModel.ConstantPool.IntegerEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.IntegerEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.IntegerEntry

            -
            public ClassModel.ConstantPool.IntegerEntry(ByteReader _byteReader,
            -                                    int _slot)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getIntValue

            -
            public int getIntValue()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.InterfaceMethodEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.InterfaceMethodEntry.html deleted file mode 100644 index 07dc1ae6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.InterfaceMethodEntry.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - - -ClassModel.ConstantPool.InterfaceMethodEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.InterfaceMethodEntry

      -
      -
      - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.LongEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.LongEntry.html deleted file mode 100644 index be1f196f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.LongEntry.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -ClassModel.ConstantPool.LongEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.LongEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.LongEntry

            -
            public ClassModel.ConstantPool.LongEntry(ByteReader _byteReader,
            -                                 int _slot)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getLongValue

            -
            public long getLongValue()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodEntry.html deleted file mode 100644 index b29f4c57..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodEntry.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - - -ClassModel.ConstantPool.MethodEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.MethodEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.MethodEntry

            -
            public ClassModel.ConstantPool.MethodEntry(ByteReader _byteReader,
            -                                   int _slot)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodReferenceEntry.Arg.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodReferenceEntry.Arg.html deleted file mode 100644 index 7a15368f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodReferenceEntry.Arg.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - -ClassModel.ConstantPool.MethodReferenceEntry.Arg - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.MethodReferenceEntry.Arg

      -
      -
      - -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodReferenceEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodReferenceEntry.html deleted file mode 100644 index e788d98e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.MethodReferenceEntry.html +++ /dev/null @@ -1,391 +0,0 @@ - - - - - -ClassModel.ConstantPool.MethodReferenceEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.MethodReferenceEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.MethodReferenceEntry

            -
            public ClassModel.ConstantPool.MethodReferenceEntry(ByteReader byteReader,
            -                                            int slot,
            -                                            ClassModel.ConstantPoolType constantPoolType)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.NameAndTypeEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.NameAndTypeEntry.html deleted file mode 100644 index 36da3af9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.NameAndTypeEntry.html +++ /dev/null @@ -1,313 +0,0 @@ - - - - - -ClassModel.ConstantPool.NameAndTypeEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.NameAndTypeEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.NameAndTypeEntry

            -
            public ClassModel.ConstantPool.NameAndTypeEntry(ByteReader _byteReader,
            -                                        int _slot)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ReferenceEntry.Type.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ReferenceEntry.Type.html deleted file mode 100644 index c105b954..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ReferenceEntry.Type.html +++ /dev/null @@ -1,303 +0,0 @@ - - - - - -ClassModel.ConstantPool.ReferenceEntry.Type - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.ReferenceEntry.Type

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          intgetArrayDimensions() 
          java.lang.StringgetType() 
          booleanisArray() 
          booleanisVoid() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.ReferenceEntry.Type

            -
            public ClassModel.ConstantPool.ReferenceEntry.Type(java.lang.String _type)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getType

            -
            public java.lang.String getType()
            -
          • -
          - - - -
            -
          • -

            isVoid

            -
            public boolean isVoid()
            -
          • -
          - - - -
            -
          • -

            isArray

            -
            public boolean isArray()
            -
          • -
          - - - -
            -
          • -

            getArrayDimensions

            -
            public int getArrayDimensions()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ReferenceEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ReferenceEntry.html deleted file mode 100644 index 9e3633b8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.ReferenceEntry.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - -ClassModel.ConstantPool.ReferenceEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.ReferenceEntry

      -
      -
      - -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.StringEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.StringEntry.html deleted file mode 100644 index a341f2f5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.StringEntry.html +++ /dev/null @@ -1,287 +0,0 @@ - - - - - -ClassModel.ConstantPool.StringEntry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.StringEntry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.StringEntry

            -
            public ClassModel.ConstantPool.StringEntry(ByteReader _byteReader,
            -                                   int _slot)
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.UTF8Entry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.UTF8Entry.html deleted file mode 100644 index 62aed0c9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.UTF8Entry.html +++ /dev/null @@ -1,274 +0,0 @@ - - - - - -ClassModel.ConstantPool.UTF8Entry - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool.UTF8Entry

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.ConstantPool.UTF8Entry

            -
            public ClassModel.ConstantPool.UTF8Entry(ByteReader _byteReader,
            -                                 int _slot)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getUTF8

            -
            public java.lang.String getUTF8()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.html deleted file mode 100644 index 6fef644f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPool.html +++ /dev/null @@ -1,565 +0,0 @@ - - - - - -ClassModel.ConstantPool - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.ConstantPool

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.ConstantPool
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPoolType.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPoolType.html deleted file mode 100644 index 0572f324..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.ConstantPoolType.html +++ /dev/null @@ -1,457 +0,0 @@ - - - - - -ClassModel.ConstantPoolType - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Enum ClassModel.ConstantPoolType

      -
      -
      -
        -
      • java.lang.Object
      • -
      • - -
      • -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static ClassModel.ConstantPoolTypevalueOf(java.lang.String name) -
          Returns the enum constant of this type with the specified name.
          -
          static ClassModel.ConstantPoolType[]values() -
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Enum

            -compareTo, equals, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
          • -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -getClass, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.MethodDescription.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.MethodDescription.html deleted file mode 100644 index 3c9d92b3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.MethodDescription.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - -ClassModel.MethodDescription - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel.MethodDescription

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel.MethodDescription
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        ClassModel
        -
        -
        -
        -
        public static class ClassModel.MethodDescription
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          ClassModel.MethodDescription(java.lang.String _className, - java.lang.String _methodName, - java.lang.String _type, - java.lang.String[] _args) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          java.lang.String[]getArgs() 
          java.lang.StringgetClassName() 
          java.lang.StringgetMethodName() 
          java.lang.StringgetType() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel.MethodDescription

            -
            public ClassModel.MethodDescription(java.lang.String _className,
            -                            java.lang.String _methodName,
            -                            java.lang.String _type,
            -                            java.lang.String[] _args)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getArgs

            -
            public java.lang.String[] getArgs()
            -
          • -
          - - - -
            -
          • -

            getType

            -
            public java.lang.String getType()
            -
          • -
          - - - -
            -
          • -

            getClassName

            -
            public java.lang.String getClassName()
            -
          • -
          - - - -
            -
          • -

            getMethodName

            -
            public java.lang.String getMethodName()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.html deleted file mode 100644 index 411e2f1d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/ClassModel.html +++ /dev/null @@ -1,1018 +0,0 @@ - - - - - -ClassModel - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class ClassModel

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.ClassModel
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class ClassModel
        -extends java.lang.Object
        -
        Class represents a ClassFile (MyClass.class). - - A ClassModel is constructed from an instance of a java.lang.Class. - - If the java class mode changes we may need to modify this to accommodate.
        -
        Author:
        -
        gfrost
        -
        See Also:
        Java 5 Class File Format
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ClassModel

            -
            public ClassModel(java.lang.Class<?> _class)
            -           throws ClassParseException
            -
            Create a ClassModel representing a given Class. - - The class's classfile must be available from the class's classloader via getClassLoader().getResourceAsStream(name)). - For dynamic languages creating classes on the fly we may need another approach.
            -
            Parameters:
            _class - The class we will extract the model from
            -
            Throws:
            -
            ClassParseException
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            isSuperClass

            -
            public boolean isSuperClass(java.lang.String otherClassName)
            -
            Determine if this is the superclass of some other named class.
            -
            Parameters:
            otherClassName - The name of the class to compare against
            -
            Returns:
            true if 'this' a superclass of another named class
            -
          • -
          - - - -
            -
          • -

            isSuperClass

            -
            public boolean isSuperClass(java.lang.Class<?> other)
            -
            Determine if this is the superclass of some other class.
            -
            Parameters:
            otherClass - The class to compare against
            -
            Returns:
            true if 'this' a superclass of another class
            -
          • -
          - - - -
            -
          • -

            getSuperClazz

            -
            public ClassModel getSuperClazz()
            -
            Getter for superClazz
            -
            Returns:
            the superClazz ClassModel
            -
          • -
          - - - -
            -
          • -

            replaceSuperClazz

            -
            public void replaceSuperClazz(ClassModel c)
            -
          • -
          - - - -
            -
          • -

            typeName

            -
            public static java.lang.String typeName(char _typeChar)
            -
            Convert a given JNI character type (say 'I') to its type name ('int').
            -
            Parameters:
            _typeChar -
            -
            Returns:
            either a mapped type name or null if no mapping exists.
            -
          • -
          - - - -
            -
          • -

            convert

            -
            public static java.lang.String convert(java.lang.String _string)
            -
          • -
          - - - -
            -
          • -

            convert

            -
            public static java.lang.String convert(java.lang.String _string,
            -                       java.lang.String _insert)
            -
          • -
          - - - -
            -
          • -

            convert

            -
            public static java.lang.String convert(java.lang.String _string,
            -                       java.lang.String _insert,
            -                       boolean _showFullClassName)
            -
          • -
          - - - - - - - -
            -
          • -

            parse

            -
            public void parse(java.lang.Class<?> _class)
            -           throws ClassParseException
            -
            We extract the class's classloader and name and delegate to private parse method.
            -
            Parameters:
            _class - The class we wish to model
            -
            Throws:
            -
            ClassParseException
            -
          • -
          - - - -
            -
          • -

            getMagic

            -
            public int getMagic()
            -
          • -
          - - - -
            -
          • -

            getMajorVersion

            -
            public int getMajorVersion()
            -
          • -
          - - - -
            -
          • -

            getMinorVersion

            -
            public int getMinorVersion()
            -
          • -
          - - - -
            -
          • -

            getAccessFlags

            -
            public int getAccessFlags()
            -
          • -
          - - - - - - - -
            -
          • -

            getThisClassConstantPoolIndex

            -
            public int getThisClassConstantPoolIndex()
            -
          • -
          - - - -
            -
          • -

            getSuperClassConstantPoolIndex

            -
            public int getSuperClassConstantPoolIndex()
            -
          • -
          - - - - - - - - - - - - - - - - - - - - - - - -
            -
          • -

            getMethod

            -
            public ClassModel.ClassModelMethod getMethod(ClassModel.ConstantPool.MethodEntry _methodEntry,
            -                                    boolean _isSpecial)
            -
            Look up a ConstantPool MethodEntry and return the corresponding Method.
            -
            Parameters:
            _methodEntry - The ConstantPool MethodEntry we want.
            _isSpecial - True if we wish to delegate to super (to support super.foo())
            -
            Returns:
            The Method or null if we fail to locate a given method.
            -
          • -
          - - - -
            -
          • -

            getMethodModel

            -
            public MethodModel getMethodModel(java.lang.String _name,
            -                         java.lang.String _signature)
            -                           throws AparapiException
            -
            Create a MethodModel for a given method name and signature.
            -
            Parameters:
            _name -
            _signature -
            -
            Returns:
            -
            Throws:
            -
            AparapiException
            -
          • -
          - - - - - - - -
            -
          • -

            getStructMemberOffsets

            -
            public java.util.ArrayList<java.lang.Long> getStructMemberOffsets()
            -
          • -
          - - - - - - - -
            -
          • -

            getTotalStructSize

            -
            public int getTotalStructSize()
            -
          • -
          - - - -
            -
          • -

            setTotalStructSize

            -
            public void setTotalStructSize(int x)
            -
          • -
          - - - -
            -
          • -

            getClassWeAreModelling

            -
            public java.lang.Class<?> getClassWeAreModelling()
            -
          • -
          - - - - - - - - -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/Entrypoint.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/Entrypoint.html deleted file mode 100644 index 8f964e39..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/Entrypoint.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - - -Entrypoint - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class Entrypoint

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.Entrypoint
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class Entrypoint
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            requiresDoublePragma

            -
            public boolean requiresDoublePragma()
            -
          • -
          - - - -
            -
          • -

            requiresByteAddressableStorePragma

            -
            public boolean requiresByteAddressableStorePragma()
            -
          • -
          - - - -
            -
          • -

            setRequiresAtomics32Pragma

            -
            public void setRequiresAtomics32Pragma(boolean newVal)
            -
          • -
          - - - -
            -
          • -

            setRequiresAtomics64Pragma

            -
            public void setRequiresAtomics64Pragma(boolean newVal)
            -
          • -
          - - - -
            -
          • -

            requiresAtomic32Pragma

            -
            public boolean requiresAtomic32Pragma()
            -
          • -
          - - - -
            -
          • -

            requiresAtomic64Pragma

            -
            public boolean requiresAtomic64Pragma()
            -
          • -
          - - - -
            -
          • -

            getKernelInstance

            -
            public java.lang.Object getKernelInstance()
            -
          • -
          - - - -
            -
          • -

            setKernelInstance

            -
            public void setKernelInstance(java.lang.Object _k)
            -
          • -
          - - - -
            -
          • -

            getObjectArrayFieldsClasses

            -
            public java.util.Map<java.lang.String,ClassModel> getObjectArrayFieldsClasses()
            -
          • -
          - - - -
            -
          • -

            getFieldFromClassHierarchy

            -
            public static java.lang.reflect.Field getFieldFromClassHierarchy(java.lang.Class<?> _clazz,
            -                                                 java.lang.String _name)
            -                                                          throws AparapiException
            -
            Throws:
            -
            AparapiException
            -
          • -
          - - - - - - - - - - - - - - - -
            -
          • -

            shouldFallback

            -
            public boolean shouldFallback()
            -
          • -
          - - - - - - - -
            -
          • -

            getReferencedFields

            -
            public java.util.List<java.lang.reflect.Field> getReferencedFields()
            -
          • -
          - - - -
            -
          • -

            getCalledMethods

            -
            public java.util.List<MethodModel> getCalledMethods()
            -
          • -
          - - - -
            -
          • -

            getReferencedFieldNames

            -
            public java.util.Set<java.lang.String> getReferencedFieldNames()
            -
          • -
          - - - -
            -
          • -

            getArrayFieldAssignments

            -
            public java.util.Set<java.lang.String> getArrayFieldAssignments()
            -
          • -
          - - - -
            -
          • -

            getArrayFieldAccesses

            -
            public java.util.Set<java.lang.String> getArrayFieldAccesses()
            -
          • -
          - - - -
            -
          • -

            getArrayFieldArrayLengthUsed

            -
            public java.util.Set<java.lang.String> getArrayFieldArrayLengthUsed()
            -
          • -
          - - - -
            -
          • -

            getMethodModel

            -
            public MethodModel getMethodModel()
            -
          • -
          - - - -
            -
          • -

            getClassModel

            -
            public ClassModel getClassModel()
            -
          • -
          - - - - -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/MethodModel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/MethodModel.html deleted file mode 100644 index ad103e94..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/MethodModel.html +++ /dev/null @@ -1,648 +0,0 @@ - - - - - -MethodModel - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.model
      -

      Class MethodModel

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.model.MethodModel
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class MethodModel
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            isGetter

            -
            public boolean isGetter()
            -
          • -
          - - - -
            -
          • -

            isSetter

            -
            public boolean isSetter()
            -
          • -
          - - - -
            -
          • -

            methodUsesPutfield

            -
            public boolean methodUsesPutfield()
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            getCalledMethods

            -
            public java.util.Set<MethodModel> getCalledMethods()
            -
          • -
          - - - - - - - -
            -
          • -

            setRequiredPragmas

            -
            public void setRequiredPragmas(Instruction instruction)
            -
            Look at each instruction for use of long/double or byte writes which - require pragmas to be used in the OpenCL source
            -
          • -
          - - - -
            -
          • -

            requiresDoublePragma

            -
            public boolean requiresDoublePragma()
            -
          • -
          - - - -
            -
          • -

            requiresByteAddressableStorePragma

            -
            public boolean requiresByteAddressableStorePragma()
            -
          • -
          - - - -
            -
          • -

            createListOfInstructions

            -
            public java.util.Map<java.lang.Integer,Instruction> createListOfInstructions()
            -                                                                      throws ClassParseException
            -
            Create a linked list of instructions (from pcHead to pcTail). - - Returns a map of int (pc) to Instruction which to allow us to quickly get from a bytecode offset to the appropriate instruction. - - Note that not all int values from 0 to code.length values will map to a valid instruction, if pcMap.get(n) == null then this implies - that 'n' is not the start of an instruction - - So either pcMap.get(i)== null or pcMap.get(i).getThisPC()==i
            -
            Returns:
            Map the returned pc to Instruction map
            -
            Throws:
            -
            ClassParseException
            -
          • -
          - - - -
            -
          • -

            buildBranchGraphs

            -
            public void buildBranchGraphs(java.util.Map<java.lang.Integer,Instruction> pcMap)
            -
            Here we connect the branch nodes to the instruction that they branch to. -

            - Each branch node contains a 'target' field indended to reference the node that the branch targets. Each instruction also contain four seperate lists of branch nodes that reference it. - These lists hold forwardConditional, forwardUnconditional, reverseConditional and revereseUnconditional branches that reference it. -

            - So assuming that we had a branch node at pc offset 100 which represented 'goto 200'. -

            - Following this call the branch node at pc offset 100 will have a 'target' field which actually references the instruction at pc offset 200, and the instruction at pc offset 200 will - have the branch node (at 100) added to it's forwardUnconditional list.

            -
            See Also:
            InstructionSet.Branch#getTarget(), -Instruction#getForwardConditionalTargets(), -Instruction#getForwardUnconditionalTargets(), -Instruction#getReverseConditionalTargets(), -Instruction#getReverseUnconditionalTargets()
            -
          • -
          - - - -
            -
          • -

            deoptimizeReverseBranches

            -
            public void deoptimizeReverseBranches()
            -
            Javac optimizes some branches to avoid goto->goto, branch->goto etc. - - This method specifically deals with reverse branches which are the result of such optimisations. - -
            - 
            - 
            -
          • -
          - - - -
            -
          • -

            txFormDups

            -
            public void txFormDups(ExpressionList _expressionList,
            -              Instruction _instruction)
            -                throws ClassParseException
            -
            DUP family of instructions break our stack unwind model (whereby we treat instructions like the oeprands they create/consume). - -

            - Here we replace DUP style instructions with a 'mock' instruction which 'clones' the effect of the instruction. This would be invalid to execute but is useful - to replace the DUP with a 'pattern' which it simulates. This allows us to later apply transforms to represent the original code. - -

            - An example might be the bytecode for the following sequence. -

            -    results[10]++; 
            -         return
            - 
            - - Which results in the following bytecode -
            -      0:   aload_0       // reference through 'this' to get 
            -      1:   getfield      // field 'results' which is an array of int
            -      4:   bipush  10    // push the array index
            -      6:   dup2          // dreaded dup2 we'll come back here
            -      7:   iaload        // ignore for the moment.
            -      8:   iconst_1
            -      9:   iadd
            -      10:  iastore
            -      11:  return
            - 
            - - First we need to know what the stack will look like before the dup2 is encountered. - Using our folding technique we represent the first two instructions inside () - -
            
            -           getfield (aload_0     // result in the array field reference on stack
            -           bipush  10            // the array index
            -           dup2                  // dreaded dup2 we'll come back here
            - 
            - - The dup2 essentially copies the top two elements on the stack. So we emulate this by replacing the dup2 with clones of the instructions which would reinstate the same stack state. -

            - So after the dup2 transform we end up with:- -

            
            -          getfield (aload_0)     // result in the array field reference on stack
            -          bipush  10             // the array index
            -          {getfield (aload_0)}   // result in the array field reference on stack
            -          {bipush 10}            // the array index
            - 
            - - So carrying on lets look at the iaload which consumes two operands (the index and the array field reference) and creates one (the result of an array access) - -
            
            -          getfield (aload_0)     // result in the array field reference on stack
            -          bipush  10             // the array index
            -          {getfield (aload_0)}   // result in the array field reference on stack
            -          {bipush  10}           // the array index
            -          iaload 
            - 
            - - So we now have - -
            
            -          getfield (aload_0)                        // result in the array field reference on stack
            -          bipush  10                                // the array index
            -          iaload ({getfield(aload_0), {bipush 10})  // results in the array element on the stack
            -          iconst
            -          iadd
            - 
            - - And if you are following along the iadd will fold the previous two stack entries essentially pushing the result of - results[10]+1 on the stack. - -
            
            -          getfield (aload_0)                                        // result in the array field reference on stack
            -          bipush  10                                                // the array index
            -          iadd (iaload ({getfield(aload_0), {bipush 10}, iconst_1)  // push of results[10]+1 
            - 
            - Then the final istore instruction which consumes 3 stack operands (the field array reference, the index and the value to assign). - -

            - Which results in -

             
            -          istore (getfield (aload_0), bipush 10,  iadd (iaload ({getfield(aload_0), {bipush 10}, iconst_1)) // results[10] = results[10+1]
            - 
            - - Where results[10] = results[10+1] is the long-hand form of the results[10]++ - and will be transformed by one of the 'inc' transforms to the more familiar form a little later.
            -
            Parameters:
            _expressionList -
            _instruction -
            -
            Throws:
            -
            ClassParseException
            -
          • -
          - - - - - - - - - - - - - - - -
            -
          • -

            getSimpleName

            -
            public java.lang.String getSimpleName()
            -
          • -
          - - - -
            -
          • -

            getName

            -
            public java.lang.String getName()
            -
          • -
          - - - -
            -
          • -

            getReturnType

            -
            public java.lang.String getReturnType()
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            getExprHead

            -
            public Instruction getExprHead()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.Access.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.Access.html deleted file mode 100644 index 2b22a47d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.Access.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.Access - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.Access

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.AttributePoolEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.AttributePoolEntry.html deleted file mode 100644 index ffdb745a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.AttributePoolEntry.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry

      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry.html deleted file mode 100644 index 4dd03f88..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.CodeEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.CodeEntry.html deleted file mode 100644 index 9bfa0889..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.CodeEntry.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.ConstantValueEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.ConstantValueEntry.html deleted file mode 100644 index d88181a3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.ConstantValueEntry.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.ConstantValueEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.ConstantValueEntry

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.ConstantValueEntry
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.DeprecatedEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.DeprecatedEntry.html deleted file mode 100644 index f3bc55c7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.DeprecatedEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.DeprecatedEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.DeprecatedEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.EnclosingMethodEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.EnclosingMethodEntry.html deleted file mode 100644 index 6f469789..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.EnclosingMethodEntry.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.EnclosingMethodEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.EnclosingMethodEntry

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.EnclosingMethodEntry
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.ExceptionEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.ExceptionEntry.html deleted file mode 100644 index d7d04de7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.ExceptionEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.ExceptionEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.ExceptionEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo.html deleted file mode 100644 index 420da4e2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.InnerClassesEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.InnerClassesEntry.html deleted file mode 100644 index 5aedad69..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.InnerClassesEntry.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair.html deleted file mode 100644 index ac2cd547..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LineNumberTableEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LineNumberTableEntry.html deleted file mode 100644 index 05abf66e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LineNumberTableEntry.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo.html deleted file mode 100644 index 6a2733fd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LocalVariableTableEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LocalVariableTableEntry.html deleted file mode 100644 index 67b5cd13..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.LocalVariableTableEntry.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry

      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.OtherEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.OtherEntry.html deleted file mode 100644 index e3369f49..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.OtherEntry.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.OtherEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.OtherEntry

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.OtherEntry
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.PoolEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.PoolEntry.html deleted file mode 100644 index 8e628eaf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.PoolEntry.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.PoolEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.PoolEntry

      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue.html deleted file mode 100644 index d654e384..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue.html deleted file mode 100644 index 088bf8a1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue.html deleted file mode 100644 index 1b105834..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue.html deleted file mode 100644 index 9396a925..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue.html deleted file mode 100644 index cfacf255..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.html deleted file mode 100644 index 763f8fe6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.html deleted file mode 100644 index 4c3a1d9e..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.html deleted file mode 100644 index ece31d8d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.RuntimeAnnotationsEntry.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry

      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SignatureEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SignatureEntry.html deleted file mode 100644 index 68d42217..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SignatureEntry.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.SignatureEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.SignatureEntry

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.AttributePool.SignatureEntry
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SourceFileEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SourceFileEntry.html deleted file mode 100644 index f0536f2a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SourceFileEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.SourceFileEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.SourceFileEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SyntheticEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SyntheticEntry.html deleted file mode 100644 index 1afb7a90..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.SyntheticEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool.SyntheticEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool.SyntheticEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.html deleted file mode 100644 index fd2506e8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.AttributePool.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.AttributePool - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.AttributePool

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelField.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelField.html deleted file mode 100644 index ee63ac92..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelField.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ClassModelField - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ClassModelField

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelInterface.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelInterface.html deleted file mode 100644 index 5d192f51..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelInterface.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ClassModelInterface - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ClassModelInterface

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.ClassModelInterface
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelMethod.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelMethod.html deleted file mode 100644 index e895b215..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ClassModelMethod.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ClassModelMethod

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ClassEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ClassEntry.html deleted file mode 100644 index 3ae203a9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ClassEntry.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ClassEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.ClassEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.DoubleEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.DoubleEntry.html deleted file mode 100644 index ce76cc29..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.DoubleEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.DoubleEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.DoubleEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.EmptyEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.EmptyEntry.html deleted file mode 100644 index 75eee184..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.EmptyEntry.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.EmptyEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.EmptyEntry

      -
      -
      No usage of com.amd.aparapi.internal.model.ClassModel.ConstantPool.EmptyEntry
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.Entry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.Entry.html deleted file mode 100644 index e81fc11f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.Entry.html +++ /dev/null @@ -1,296 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.FieldEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.FieldEntry.html deleted file mode 100644 index 2548503a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.FieldEntry.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.FieldEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.FieldEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.FloatEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.FloatEntry.html deleted file mode 100644 index 17245fde..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.FloatEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.FloatEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.FloatEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.IntegerEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.IntegerEntry.html deleted file mode 100644 index 9f786455..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.IntegerEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.IntegerEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.IntegerEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.InterfaceMethodEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.InterfaceMethodEntry.html deleted file mode 100644 index b2d15f7b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.InterfaceMethodEntry.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.InterfaceMethodEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.InterfaceMethodEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.LongEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.LongEntry.html deleted file mode 100644 index b0c8ce4d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.LongEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.LongEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.LongEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodEntry.html deleted file mode 100644 index 8c7c27f6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodEntry.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodReferenceEntry.Arg.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodReferenceEntry.Arg.html deleted file mode 100644 index cd02a1fa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodReferenceEntry.Arg.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry.Arg - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry.Arg

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodReferenceEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodReferenceEntry.html deleted file mode 100644 index 0fe41bea..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.MethodReferenceEntry.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.NameAndTypeEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.NameAndTypeEntry.html deleted file mode 100644 index e0ec2922..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.NameAndTypeEntry.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ReferenceEntry.Type.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ReferenceEntry.Type.html deleted file mode 100644 index 8bccd4d4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ReferenceEntry.Type.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ReferenceEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ReferenceEntry.html deleted file mode 100644 index b6d67f95..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.ReferenceEntry.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.StringEntry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.StringEntry.html deleted file mode 100644 index aabcff5f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.StringEntry.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.StringEntry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.StringEntry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.UTF8Entry.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.UTF8Entry.html deleted file mode 100644 index a6be8206..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.UTF8Entry.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool.UTF8Entry - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool.UTF8Entry

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.html deleted file mode 100644 index d89e4597..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPool.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPool - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPool

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPoolType.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPoolType.html deleted file mode 100644 index a7adcceb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.ConstantPoolType.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.ConstantPoolType - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.ConstantPoolType

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.MethodDescription.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.MethodDescription.html deleted file mode 100644 index a279b482..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.MethodDescription.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel.MethodDescription - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel.MethodDescription

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.html deleted file mode 100644 index 802ba865..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/ClassModel.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.ClassModel - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.ClassModel

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/Entrypoint.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/Entrypoint.html deleted file mode 100644 index 26d6459b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/Entrypoint.html +++ /dev/null @@ -1,212 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.Entrypoint - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.Entrypoint

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/MethodModel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/MethodModel.html deleted file mode 100644 index 1bfeff12..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/class-use/MethodModel.html +++ /dev/null @@ -1,1560 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.model.MethodModel - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.model.MethodModel

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-frame.html deleted file mode 100644 index ac1d7e34..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-frame.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -com.amd.aparapi.internal.model - - - - -

      com.amd.aparapi.internal.model

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-summary.html deleted file mode 100644 index 0fd3181a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-summary.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -com.amd.aparapi.internal.model - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.model

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-tree.html deleted file mode 100644 index 1a68b8f9..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-tree.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - -com.amd.aparapi.internal.model Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.model

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -

      Enum Hierarchy

      -
        -
      • java.lang.Object - -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-use.html deleted file mode 100644 index ddd500d5..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/model/package-use.html +++ /dev/null @@ -1,361 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.model - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.model

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLArgDescriptor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLArgDescriptor.html deleted file mode 100644 index e4a2fbbb..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLArgDescriptor.html +++ /dev/null @@ -1,538 +0,0 @@ - - - - - -OpenCLArgDescriptor - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.opencl
      -

      Class OpenCLArgDescriptor

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class OpenCLArgDescriptor
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLKernel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLKernel.html deleted file mode 100644 index 90fb3ad8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLKernel.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - -OpenCLKernel - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.opencl
      -

      Class OpenCLKernel

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class OpenCLKernel
        -extends OpenCLJNI
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          OpenCLKernelcreateKernel() 
          java.lang.StringgetName() 
          voidinvoke(java.lang.Object[] _args) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLKernel

            -
            public OpenCLKernel(OpenCLProgram _program,
            -            java.lang.String _kernelName,
            -            java.util.List<OpenCLArgDescriptor> _args)
            -
            Minimal constructor
            -
            Parameters:
            _program -
            _kernelName -
            _args -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - - - - - -
            -
          • -

            getName

            -
            public java.lang.String getName()
            -
          • -
          - - - -
            -
          • -

            invoke

            -
            public void invoke(java.lang.Object[] _args)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLLoader.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLLoader.html deleted file mode 100644 index a8016794..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLLoader.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - - -OpenCLLoader - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.opencl
      -

      Class OpenCLLoader

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class OpenCLLoader
        -extends OpenCLJNI
        -
        This class is intended to be a singleton which determines if OpenCL is available upon startup of Aparapi
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          OpenCLLoader() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static booleanisOpenCLAvailable() -
          Retrieve the status of whether OpenCL was successfully loaded
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLLoader

            -
            public OpenCLLoader()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            isOpenCLAvailable

            -
            public static boolean isOpenCLAvailable()
            -
            Retrieve the status of whether OpenCL was successfully loaded
            -
            Returns:
            The status of whether OpenCL was successfully loaded
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLMem.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLMem.html deleted file mode 100644 index ba0bfcbd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLMem.html +++ /dev/null @@ -1,293 +0,0 @@ - - - - - -OpenCLMem - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.opencl
      -

      Class OpenCLMem

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.opencl.OpenCLMem
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class OpenCLMem
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          OpenCLMem() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLPlatform.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLPlatform.html deleted file mode 100644 index ee1dcdfe..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLPlatform.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - - -OpenCLPlatform - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.opencl
      -

      Class OpenCLPlatform

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class OpenCLPlatform
        -extends OpenCLJNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - - - - -
          Constructors 
          Constructor and Description
          OpenCLPlatform() -
          Default constructor
          -
          OpenCLPlatform(long _platformId, - java.lang.String _version, - java.lang.String _vendor, - java.lang.String _name) -
          Full constructor
          -
          -
        • -
        - - -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLPlatform

            -
            public OpenCLPlatform()
            -
            Default constructor
            -
          • -
          - - - -
            -
          • -

            OpenCLPlatform

            -
            public OpenCLPlatform(long _platformId,
            -              java.lang.String _version,
            -              java.lang.String _vendor,
            -              java.lang.String _name)
            -
            Full constructor
            -
            Parameters:
            _platformId -
            _version -
            _vendor -
            _name -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            addOpenCLDevice

            -
            public void addOpenCLDevice(OpenCLDevice device)
            -
          • -
          - - - -
            -
          • -

            getOpenCLDevices

            -
            public java.util.List<OpenCLDevice> getOpenCLDevices()
            -
          • -
          - - - -
            -
          • -

            getOpenCLPlatforms

            -
            public java.util.List<OpenCLPlatform> getOpenCLPlatforms()
            -
          • -
          - - - -
            -
          • -

            getName

            -
            public java.lang.String getName()
            -
          • -
          - - - -
            -
          • -

            getVersion

            -
            public java.lang.String getVersion()
            -
          • -
          - - - -
            -
          • -

            getVendor

            -
            public java.lang.String getVendor()
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLProgram.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLProgram.html deleted file mode 100644 index 807dae68..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/OpenCLProgram.html +++ /dev/null @@ -1,354 +0,0 @@ - - - - - -OpenCLProgram - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.opencl
      -

      Class OpenCLProgram

      -
      -
      - -
      -
        -
      • -
        -
        -
        public class OpenCLProgram
        -extends OpenCLJNI
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - - - - -
          Constructors 
          Constructor and Description
          OpenCLProgram(long _programId, - long _queueId, - long _contextId, - OpenCLDevice _device, - java.lang.String _source) -
          Full constructor
          -
          OpenCLProgram(OpenCLDevice _device, - java.lang.String _source) -
          Minimal constructor
          -
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voidadd(java.lang.Object _instance, - long _address, - OpenCLMem _mem) 
          OpenCLProgramcreateProgram(OpenCLDevice context) 
          OpenCLDevicegetDevice() 
          OpenCLMemgetMem(java.lang.Object _instance, - long _address) 
          voidremapped(java.lang.Object _instance, - long _address, - OpenCLMem _mem, - long _oldAddress) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLProgram

            -
            public OpenCLProgram(OpenCLDevice _device,
            -             java.lang.String _source)
            -
            Minimal constructor
            -
          • -
          - - - -
            -
          • -

            OpenCLProgram

            -
            public OpenCLProgram(long _programId,
            -             long _queueId,
            -             long _contextId,
            -             OpenCLDevice _device,
            -             java.lang.String _source)
            -
            Full constructor
            -
            Parameters:
            _programId -
            _queueId -
            _contextId -
            _device -
            _source -
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - - - - - - - - - -
            -
          • -

            getMem

            -
            public OpenCLMem getMem(java.lang.Object _instance,
            -               long _address)
            -
          • -
          - - - -
            -
          • -

            add

            -
            public void add(java.lang.Object _instance,
            -       long _address,
            -       OpenCLMem _mem)
            -
          • -
          - - - -
            -
          • -

            remapped

            -
            public void remapped(java.lang.Object _instance,
            -            long _address,
            -            OpenCLMem _mem,
            -            long _oldAddress)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLArgDescriptor.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLArgDescriptor.html deleted file mode 100644 index d3a14954..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLArgDescriptor.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.opencl.OpenCLArgDescriptor

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLKernel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLKernel.html deleted file mode 100644 index 21cb6b5f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLKernel.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.opencl.OpenCLKernel - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.opencl.OpenCLKernel

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLLoader.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLLoader.html deleted file mode 100644 index 64c89ac8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLLoader.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.opencl.OpenCLLoader - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.opencl.OpenCLLoader

      -
      -
      No usage of com.amd.aparapi.internal.opencl.OpenCLLoader
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLMem.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLMem.html deleted file mode 100644 index 806184ce..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLMem.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.opencl.OpenCLMem - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.opencl.OpenCLMem

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLPlatform.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLPlatform.html deleted file mode 100644 index cf79aa3a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLPlatform.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.opencl.OpenCLPlatform - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.opencl.OpenCLPlatform

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLProgram.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLProgram.html deleted file mode 100644 index b24fe173..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/class-use/OpenCLProgram.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.opencl.OpenCLProgram - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.opencl.OpenCLProgram

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-frame.html deleted file mode 100644 index 2faafa18..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-frame.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -com.amd.aparapi.internal.opencl - - - - -

      com.amd.aparapi.internal.opencl

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-summary.html deleted file mode 100644 index 1d42e304..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-summary.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -com.amd.aparapi.internal.opencl - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.opencl

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-tree.html deleted file mode 100644 index 2592da05..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-tree.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - -com.amd.aparapi.internal.opencl Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.opencl

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-use.html deleted file mode 100644 index 6b8934ed..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/opencl/package-use.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.opencl - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.opencl

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/ByteBuffer.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/ByteBuffer.html deleted file mode 100644 index 43a4737b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/ByteBuffer.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -ByteBuffer - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.reader
      -

      Class ByteBuffer

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.reader.ByteBuffer
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class ByteBuffer
        -extends java.lang.Object
        -
        Used to parse ClassFile structure.
        - - Provides low level access to sequential bytes in a stream given a specific offset. - - Does not keep track of accesses. For this you will need a ByteReader
        -
        Author:
        -
        gfrost
        -
        See Also:
        ByteReader
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/ByteReader.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/ByteReader.html deleted file mode 100644 index 63fce1ff..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/ByteReader.html +++ /dev/null @@ -1,482 +0,0 @@ - - - - - -ByteReader - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.reader
      -

      Class ByteReader

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.reader.ByteReader
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class ByteReader
        -extends java.lang.Object
        -
        Primarily used to parse various ClassFile structures. This class provides low level access to sequential bytes in a stream given stream. -

        - Basically wraps a ByteBuffer and keeps track of the current offset. All requests on - this ByteReader will be delegated to wrappedByteBuffer. -

        -
        Author:
        -
        gfrost
        -
        See Also:
        ByteBuffer
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - - - - - - - -
          Constructors 
          Constructor and Description
          ByteReader(byte[] _bytes) -
          Construct form an array of bytes.
          -
          ByteReader(ByteBuffer _byteBuffer) -
          Construct form a given ByteBuffer.
          -
          ByteReader(java.io.InputStream _inputStream) -
          Construct form an input stream (say a ClassFile).
          -
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          byte[]bytes(int _length) 
          doubled8() 
          floatf4() 
          intgetOffset() 
          booleanhasMore() 
          intpeekU2() 
          ints2() 
          ints4() 
          voidsetOffset(int _offset) 
          voidskip(int _length) 
          intu1() 
          intu2() 
          intu4() 
          longu8() 
          java.lang.Stringutf8() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            ByteReader

            -
            public ByteReader(ByteBuffer _byteBuffer)
            -
            Construct form a given ByteBuffer.
            -
            Parameters:
            _byteBuffer - an existing ByteBuffer
            -
          • -
          - - - -
            -
          • -

            ByteReader

            -
            public ByteReader(byte[] _bytes)
            -
            Construct form an array of bytes.
            -
            Parameters:
            _bytes - an existing byte array
            -
          • -
          - - - -
            -
          • -

            ByteReader

            -
            public ByteReader(java.io.InputStream _inputStream)
            -
            Construct form an input stream (say a ClassFile).
            -
            Parameters:
            _inputStream - a stream of bytes
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            u1

            -
            public int u1()
            -
          • -
          - - - -
            -
          • -

            u2

            -
            public int u2()
            -
          • -
          - - - -
            -
          • -

            s2

            -
            public int s2()
            -
          • -
          - - - -
            -
          • -

            peekU2

            -
            public int peekU2()
            -
          • -
          - - - -
            -
          • -

            u4

            -
            public int u4()
            -
          • -
          - - - -
            -
          • -

            s4

            -
            public int s4()
            -
          • -
          - - - -
            -
          • -

            u8

            -
            public long u8()
            -
          • -
          - - - -
            -
          • -

            f4

            -
            public float f4()
            -
          • -
          - - - -
            -
          • -

            d8

            -
            public double d8()
            -
          • -
          - - - -
            -
          • -

            utf8

            -
            public java.lang.String utf8()
            -
          • -
          - - - -
            -
          • -

            bytes

            -
            public byte[] bytes(int _length)
            -
          • -
          - - - -
            -
          • -

            skip

            -
            public void skip(int _length)
            -
          • -
          - - - -
            -
          • -

            getOffset

            -
            public int getOffset()
            -
          • -
          - - - -
            -
          • -

            setOffset

            -
            public void setOffset(int _offset)
            -
          • -
          - - - -
            -
          • -

            hasMore

            -
            public boolean hasMore()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/class-use/ByteBuffer.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/class-use/ByteBuffer.html deleted file mode 100644 index 023b6472..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/class-use/ByteBuffer.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.reader.ByteBuffer - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.reader.ByteBuffer

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/class-use/ByteReader.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/class-use/ByteReader.html deleted file mode 100644 index f9c3d8dd..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/class-use/ByteReader.html +++ /dev/null @@ -1,1511 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.reader.ByteReader - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.reader.ByteReader

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-frame.html deleted file mode 100644 index de380f3f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -com.amd.aparapi.internal.reader - - - - -

      com.amd.aparapi.internal.reader

      -
      -

      Classes

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-summary.html deleted file mode 100644 index 7971d600..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-summary.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - -com.amd.aparapi.internal.reader - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.reader

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - -
        Class Summary 
        ClassDescription
        ByteBuffer -
        Used to parse ClassFile structure.
        -
        ByteReader -
        Primarily used to parse various ClassFile structures.
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-tree.html deleted file mode 100644 index b21af6c7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-tree.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - -com.amd.aparapi.internal.reader Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.reader

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object - -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-use.html deleted file mode 100644 index 0a50c361..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/reader/package-use.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.reader - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.reader

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.BranchVector.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.BranchVector.html deleted file mode 100644 index 40f73a79..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.BranchVector.html +++ /dev/null @@ -1,565 +0,0 @@ - - - - - -InstructionHelper.BranchVector - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionHelper.BranchVector

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionHelper
        -
        -
        -
        -
        public static class InstructionHelper.BranchVector
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionHelper.BranchVector

            -
            public InstructionHelper.BranchVector(Instruction _from,
            -                              Instruction _to)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - - - - - - - - - - - - - -
            -
          • -

            getStartPC

            -
            public int getStartPC()
            -
          • -
          - - - -
            -
          • -

            getEndPC

            -
            public int getEndPC()
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            equals

            -
            public boolean equals(java.lang.Object other)
            -
            -
            Overrides:
            -
            equals in class java.lang.Object
            -
            -
          • -
          - - - -
            -
          • -

            hashCode

            -
            public int hashCode()
            -
            -
            Overrides:
            -
            hashCode in class java.lang.Object
            -
            -
          • -
          - - - -
            -
          • -

            isForward

            -
            public boolean isForward()
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          - - - -
            -
          • -

            isConditionalBranch

            -
            public boolean isConditionalBranch()
            -
          • -
          - - - -
            -
          • -

            isBackward

            -
            public boolean isBackward()
            -
          • -
          - - - -
            -
          • -

            render

            -
            public java.lang.String render(int _pc)
            -
          • -
          - - - -
            -
          • -

            render

            -
            public java.lang.String render(int _startPC,
            -                      int _thisPC)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.StringWriter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.StringWriter.html deleted file mode 100644 index 3db04ea7..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.StringWriter.html +++ /dev/null @@ -1,385 +0,0 @@ - - - - - -InstructionHelper.StringWriter - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionHelper.StringWriter

      -
      -
      - -
      - -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionHelper.StringWriter

            -
            public InstructionHelper.StringWriter(java.lang.StringBuilder _sb)
            -
          • -
          - - - -
            -
          • -

            InstructionHelper.StringWriter

            -
            public InstructionHelper.StringWriter()
            -
          • -
          -
        • -
        - - -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.Table.Col.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.Table.Col.html deleted file mode 100644 index 9f9da578..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.Table.Col.html +++ /dev/null @@ -1,326 +0,0 @@ - - - - - -InstructionHelper.Table.Col - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionHelper.Table.Col

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionHelper.Table
        -
        -
        -
        -
        public static class InstructionHelper.Table.Col
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voidformat(java.lang.Object... args) 
          java.lang.Stringget(int _i) 
          voidheader(java.lang.String _header) 
          java.lang.Stringpad(java.lang.String _s, - int _width) 
          intsize() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionHelper.Table.Col

            -
            public InstructionHelper.Table.Col(java.lang.String _format)
            -
          • -
          - - - -
            -
          • -

            InstructionHelper.Table.Col

            -
            public InstructionHelper.Table.Col()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            format

            -
            public void format(java.lang.Object... args)
            -
          • -
          - - - -
            -
          • -

            size

            -
            public int size()
            -
          • -
          - - - -
            -
          • -

            pad

            -
            public java.lang.String pad(java.lang.String _s,
            -                   int _width)
            -
          • -
          - - - -
            -
          • -

            get

            -
            public java.lang.String get(int _i)
            -
          • -
          - - - -
            -
          • -

            header

            -
            public void header(java.lang.String _header)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.Table.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.Table.html deleted file mode 100644 index c82269bf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.Table.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - - -InstructionHelper.Table - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionHelper.Table

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionHelper.Table
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionHelper
        -
        -
        -
        -
        public static class InstructionHelper.Table
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          InstructionHelper.Table(java.lang.String... _formats) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voiddata(java.lang.Object... args) 
          voidheader(java.lang.String... _headers) 
          java.lang.StringtoString() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionHelper.Table

            -
            public InstructionHelper.Table(java.lang.String... _formats)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            data

            -
            public void data(java.lang.Object... args)
            -
          • -
          - - - -
            -
          • -

            toString

            -
            public java.lang.String toString()
            -
            -
            Overrides:
            -
            toString in class java.lang.Object
            -
            -
          • -
          - - - -
            -
          • -

            header

            -
            public void header(java.lang.String... _headers)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.html deleted file mode 100644 index b1e2658c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionHelper.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - -InstructionHelper - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionHelper

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionHelper
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class InstructionHelper
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          InstructionHelper() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static java.lang.StringgetLabel(Instruction instruction, - boolean showNumber, - boolean showExpressions, - boolean verboseBytecodeLabels) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionHelper

            -
            public InstructionHelper()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getLabel

            -
            public static java.lang.String getLabel(Instruction instruction,
            -                        boolean showNumber,
            -                        boolean showExpressions,
            -                        boolean verboseBytecodeLabels)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.DoorBell.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.DoorBell.html deleted file mode 100644 index efe630be..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.DoorBell.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - - -InstructionViewer.DoorBell - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionViewer.DoorBell

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionViewer.DoorBell
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionViewer
        -
        -
        -
        -
        public static class InstructionViewer.DoorBell
        -extends java.lang.Object
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voidring() 
          voidsnooze() 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionViewer.DoorBell

            -
            public InstructionViewer.DoorBell()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            snooze

            -
            public void snooze()
            -
          • -
          - - - -
            -
          • -

            ring

            -
            public void ring()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Check.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Check.html deleted file mode 100644 index b8bd1ebf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Check.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - -InstructionViewer.Form.Check - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Annotation Type InstructionViewer.Form.Check

      -
      -
      -
      -
        -
      • -
        -
        -
        @Retention(value=RUNTIME)
        -public static @interface InstructionViewer.Form.Check
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringlabel 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            label

            -
            public abstract java.lang.String label
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.List.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.List.html deleted file mode 100644 index ea792cf1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.List.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - -InstructionViewer.Form.List - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Annotation Type InstructionViewer.Form.List

      -
      -
      -
      -
        -
      • -
        -
        -
        @Retention(value=RUNTIME)
        -public static @interface InstructionViewer.Form.List
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Class<?>value 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.Class<?> value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.OneOf.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.OneOf.html deleted file mode 100644 index e2436d0a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.OneOf.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - -InstructionViewer.Form.OneOf - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Annotation Type InstructionViewer.Form.OneOf

      -
      -
      -
      -
        -
      • -
        -
        -
        public static @interface InstructionViewer.Form.OneOf
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringlabel 
          java.lang.String[]options 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            label

            -
            public abstract java.lang.String label
            -
          • -
          - - - -
            -
          • -

            options

            -
            public abstract java.lang.String[] options
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Template.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Template.html deleted file mode 100644 index 9a5f90d6..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Template.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -InstructionViewer.Form.Template - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Interface InstructionViewer.Form.Template

      -
      -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Toggle.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Toggle.html deleted file mode 100644 index 212130a4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.Toggle.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - -InstructionViewer.Form.Toggle - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Annotation Type InstructionViewer.Form.Toggle

      -
      -
      -
      -
        -
      • -
        -
        -
        @Retention(value=RUNTIME)
        -public static @interface InstructionViewer.Form.Toggle
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringlabel 
          java.lang.Stringoff 
          java.lang.Stringon 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            label

            -
            public abstract java.lang.String label
            -
          • -
          - - - -
            -
          • -

            on

            -
            public abstract java.lang.String on
            -
          • -
          - - - -
            -
          • -

            off

            -
            public abstract java.lang.String off
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.html deleted file mode 100644 index 30a3a53a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Form.html +++ /dev/null @@ -1,347 +0,0 @@ - - - - - -InstructionViewer.Form - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionViewer.Form<T extends InstructionViewer.Form.Template>

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionViewer.Form<T>
        • -
        -
      • -
      -
      - -
      -
      - -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Detail

          - - - - - -
            -
          • -

            InstructionViewer.Form

            -
            public InstructionViewer.Form(T _template)
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            sync

            -
            public abstract void sync()
            -
          • -
          - - - -
            -
          • -

            getPanel

            -
            public java.awt.Component getPanel()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.InstructionView.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.InstructionView.html deleted file mode 100644 index 1d078a53..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.InstructionView.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - -InstructionViewer.InstructionView - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionViewer.InstructionView

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionViewer.InstructionView
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Enclosing class:
        -
        InstructionViewer
        -
        -
        -
        -
        public class InstructionViewer.InstructionView
        -extends java.lang.Object
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - - - - - -
            -
          • -

            collapsedBranchTarget

            -
            public Instruction collapsedBranchTarget
            -
          • -
          - - - -
            -
          • -

            label

            -
            public java.lang.String label
            -
          • -
          - - - -
            -
          • -

            dim

            -
            public boolean dim
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionViewer.InstructionView

            -
            public InstructionViewer.InstructionView(Instruction _instruction)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Options.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Options.html deleted file mode 100644 index f0902921..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.Options.html +++ /dev/null @@ -1,351 +0,0 @@ - - - - - -InstructionViewer.Options - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionViewer.Options

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionViewer.Options
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - - - - - -
          -
        • - - -

          Method Summary

          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            fold

            -
            public boolean fold
            -
          • -
          - - - -
            -
          • -

            edgeFan

            -
            public boolean edgeFan
            -
          • -
          - - - -
            -
          • -

            edgeCurve

            -
            public boolean edgeCurve
            -
          • -
          - - - -
            -
          • -

            showPc

            -
            public boolean showPc
            -
          • -
          - - - -
            -
          • -

            verboseBytecodeLabels

            -
            public boolean verboseBytecodeLabels
            -
          • -
          - - - -
            -
          • -

            collapseAll

            -
            public boolean collapseAll
            -
          • -
          - - - -
            -
          • -

            showExpressions

            -
            public boolean showExpressions
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionViewer.Options

            -
            public InstructionViewer.Options()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.html deleted file mode 100644 index 28d67a61..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/InstructionViewer.html +++ /dev/null @@ -1,771 +0,0 @@ - - - - - -InstructionViewer - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.tool
      -

      Class InstructionViewer

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.tool.InstructionViewer
        • -
        -
      • -
      -
      - -
      -
      -
        -
      • - - - - - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - - - - -
          Constructors 
          Constructor and Description
          InstructionViewer() 
          InstructionViewer(java.awt.Color _background, - java.lang.String _name) 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          voiddirty() 
          voiddraw(java.awt.Graphics _g) 
          voiddraw(java.awt.Graphics2D _g, - java.awt.Shape _rectangle) 
          voidedge(java.awt.Graphics2D _g, - java.awt.Color _color, - InstructionViewer.InstructionView _branch, - InstructionViewer.InstructionView _target, - java.lang.String _endLabel, - java.lang.String _startLabel) 
          voidfill(java.awt.Graphics2D _g, - java.awt.Color _color, - java.awt.Shape _rect) 
          voidfill(java.awt.Graphics2D _g, - java.awt.Shape _rectangle) 
          voidfillStroke(java.awt.Graphics2D _g, - java.awt.Color _fillColor, - java.awt.Color _strokeColor, - java.awt.Stroke _stroke, - java.awt.Shape _rect) 
          java.awt.ComponentgetContainer() 
          voidline(java.awt.Graphics2D _g, - double _x1, - double _y1, - double _x2, - double _y2) 
          voidline(java.awt.Graphics2D _g, - java.awt.Stroke _stroke, - double _x1, - double _y1, - double _x2, - double _y2) 
          static voidmain(java.lang.String[] _args) 
          voidrender(java.awt.Graphics2D _g) 
          booleanselect(double _x, - double _y) 
          voidshowAndTell(java.lang.String message, - Instruction head, - Instruction _instruction) 
          voidstroke(java.awt.Graphics2D _g, - java.awt.Stroke _stroke, - java.awt.Shape _rect) 
          voidtext(java.awt.Graphics2D _g, - java.awt.Color _color, - java.lang.String _text, - double _x, - double _y) 
          voidtext(java.awt.Graphics2D _g, - java.lang.String _text, - double _x, - double _y) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - - - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            InstructionViewer

            -
            public InstructionViewer(java.awt.Color _background,
            -                 java.lang.String _name)
            -
          • -
          - - - -
            -
          • -

            InstructionViewer

            -
            public InstructionViewer()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            dirty

            -
            public void dirty()
            -
          • -
          - - - -
            -
          • -

            draw

            -
            public void draw(java.awt.Graphics _g)
            -
          • -
          - - - -
            -
          • -

            getContainer

            -
            public java.awt.Component getContainer()
            -
          • -
          - - - -
            -
          • -

            text

            -
            public void text(java.awt.Graphics2D _g,
            -        java.lang.String _text,
            -        double _x,
            -        double _y)
            -
          • -
          - - - -
            -
          • -

            text

            -
            public void text(java.awt.Graphics2D _g,
            -        java.awt.Color _color,
            -        java.lang.String _text,
            -        double _x,
            -        double _y)
            -
          • -
          - - - -
            -
          • -

            line

            -
            public void line(java.awt.Graphics2D _g,
            -        java.awt.Stroke _stroke,
            -        double _x1,
            -        double _y1,
            -        double _x2,
            -        double _y2)
            -
          • -
          - - - -
            -
          • -

            stroke

            -
            public void stroke(java.awt.Graphics2D _g,
            -          java.awt.Stroke _stroke,
            -          java.awt.Shape _rect)
            -
          • -
          - - - -
            -
          • -

            fill

            -
            public void fill(java.awt.Graphics2D _g,
            -        java.awt.Color _color,
            -        java.awt.Shape _rect)
            -
          • -
          - - - -
            -
          • -

            fillStroke

            -
            public void fillStroke(java.awt.Graphics2D _g,
            -              java.awt.Color _fillColor,
            -              java.awt.Color _strokeColor,
            -              java.awt.Stroke _stroke,
            -              java.awt.Shape _rect)
            -
          • -
          - - - -
            -
          • -

            line

            -
            public void line(java.awt.Graphics2D _g,
            -        double _x1,
            -        double _y1,
            -        double _x2,
            -        double _y2)
            -
          • -
          - - - -
            -
          • -

            draw

            -
            public void draw(java.awt.Graphics2D _g,
            -        java.awt.Shape _rectangle)
            -
          • -
          - - - -
            -
          • -

            fill

            -
            public void fill(java.awt.Graphics2D _g,
            -        java.awt.Shape _rectangle)
            -
          • -
          - - - -
            -
          • -

            select

            -
            public boolean select(double _x,
            -             double _y)
            -
          • -
          - - - -
            -
          • -

            render

            -
            public void render(java.awt.Graphics2D _g)
            -
          • -
          - - - - - - - - - - - -
            -
          • -

            main

            -
            public static void main(java.lang.String[] _args)
            -                 throws java.lang.ClassNotFoundException,
            -                        java.lang.InstantiationException,
            -                        java.lang.IllegalAccessException,
            -                        javax.swing.UnsupportedLookAndFeelException,
            -                        AparapiException
            -
            Throws:
            -
            java.lang.ClassNotFoundException
            -
            java.lang.InstantiationException
            -
            java.lang.IllegalAccessException
            -
            javax.swing.UnsupportedLookAndFeelException
            -
            AparapiException
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.BranchVector.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.BranchVector.html deleted file mode 100644 index 16d1e616..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.BranchVector.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionHelper.BranchVector

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.StringWriter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.StringWriter.html deleted file mode 100644 index 38bc462c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.StringWriter.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionHelper.StringWriter

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.Table.Col.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.Table.Col.html deleted file mode 100644 index 2be94490..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.Table.Col.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionHelper.Table.Col

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.Table.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.Table.html deleted file mode 100644 index 852ac7cc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.Table.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionHelper.Table - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionHelper.Table

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionHelper.Table
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.html deleted file mode 100644 index 414a1e67..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionHelper.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionHelper - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionHelper

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionHelper
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.DoorBell.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.DoorBell.html deleted file mode 100644 index e2d6388b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.DoorBell.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.DoorBell - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.DoorBell

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Check.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Check.html deleted file mode 100644 index b3acefe1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Check.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.Form.Check - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.Form.Check

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.List.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.List.html deleted file mode 100644 index 9f45fbdf..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.List.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.Form.List - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.Form.List

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionViewer.Form.List
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.OneOf.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.OneOf.html deleted file mode 100644 index e41c155a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.OneOf.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.Form.OneOf - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.Form.OneOf

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionViewer.Form.OneOf
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Template.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Template.html deleted file mode 100644 index 5afb6dba..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Template.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.internal.tool.InstructionViewer.Form.Template - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.internal.tool.InstructionViewer.Form.Template

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Toggle.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Toggle.html deleted file mode 100644 index d6af868b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.Toggle.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.Form.Toggle - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.Form.Toggle

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.html deleted file mode 100644 index 35c455e8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Form.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.Form - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.Form

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionViewer.Form
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.InstructionView.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.InstructionView.html deleted file mode 100644 index 3cc77bb2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.InstructionView.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.InstructionView - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.InstructionView

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Options.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Options.html deleted file mode 100644 index 919f66a3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.Options.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer.Options - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer.Options

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.html deleted file mode 100644 index 5c8edc55..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/class-use/InstructionViewer.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.tool.InstructionViewer - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.tool.InstructionViewer

      -
      -
      No usage of com.amd.aparapi.internal.tool.InstructionViewer
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-frame.html deleted file mode 100644 index 4fc5a6b4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-frame.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - -com.amd.aparapi.internal.tool - - - - -

      com.amd.aparapi.internal.tool

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-summary.html deleted file mode 100644 index d9c320d3..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-summary.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -com.amd.aparapi.internal.tool - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.tool

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-tree.html deleted file mode 100644 index f514d669..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-tree.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - -com.amd.aparapi.internal.tool Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.tool

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -

      Interface Hierarchy

      - -

      Annotation Type Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-use.html deleted file mode 100644 index fbe49dee..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/tool/package-use.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.tool - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.tool

      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/OpenCLUtil.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/OpenCLUtil.html deleted file mode 100644 index c271eefe..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/OpenCLUtil.html +++ /dev/null @@ -1,261 +0,0 @@ - - - - - -OpenCLUtil - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.util
      -

      Class OpenCLUtil

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.util.OpenCLUtil
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class OpenCLUtil
        -extends java.lang.Object
        -
        This utility class encapsulates the necessary actions required to query underlying OpenCL information
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          OpenCLUtil() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static java.util.List<OpenCLPlatform>getOpenCLPlatforms() -
          Retrieve a list of available OpenCL Platforms
          -
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLUtil

            -
            public OpenCLUtil()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getOpenCLPlatforms

            -
            public static java.util.List<OpenCLPlatform> getOpenCLPlatforms()
            -
            Retrieve a list of available OpenCL Platforms
            -
            Returns:
            Available OpenCL Platforms
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/UnsafeWrapper.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/UnsafeWrapper.html deleted file mode 100644 index e0580b11..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/UnsafeWrapper.html +++ /dev/null @@ -1,498 +0,0 @@ - - - - - -UnsafeWrapper - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.util
      -

      Class UnsafeWrapper

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.util.UnsafeWrapper
        • -
        -
      • -
      -
      -
        -
      • -
        -
        -
        public class UnsafeWrapper
        -extends java.lang.Object
        -
        A wrapper around sun.misc.Unsafe for handling atomic operations, copies from fields to arrays and vice versa. - - We avoid using sun.misc.Unsafe directly using reflection, mostly just to avoid getting 'unsafe' compiler errors. - - This might need to be changed if we start to see performance issues.
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Summary

          - - - - - - - - -
          Constructors 
          Constructor and Description
          UnsafeWrapper() 
          -
        • -
        - -
          -
        • - - -

          Method Summary

          - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          Methods 
          Modifier and TypeMethod and Description
          static intarrayBaseOffset(java.lang.Class<?> _arrayClass) 
          static intarrayIndexScale(java.lang.Class<?> _arrayClass) 
          static intatomicAdd(int[] _arr, - int _index, - int _delta) 
          static booleangetBoolean(java.lang.Object _object, - long _offset) 
          static bytegetByte(java.lang.Object _object, - long _offset) 
          static floatgetFloat(java.lang.Object _object, - long _offset) 
          static intgetInt(java.lang.Object _object, - long _offset) 
          static longgetLong(java.lang.Object _object, - long _offset) 
          static java.lang.ObjectgetObject(java.lang.Object _object, - long _offset) 
          static longobjectFieldOffset(java.lang.reflect.Field _field) 
          static voidputBoolean(java.lang.Object _object, - long _offset, - boolean _boolean) 
          static voidputByte(java.lang.Object _object, - long _offset, - byte _byte) 
          static voidputDouble(java.lang.Object _object, - long _offset, - double _double) 
          static voidputFloat(java.lang.Object _object, - long _offset, - float _float) 
          static voidputInt(java.lang.Object _object, - long _offset, - int _int) 
          static voidputLong(java.lang.Object _object, - long _offset, - long _long) 
          -
            -
          • - - -

            Methods inherited from class java.lang.Object

            -equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
          • -
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            UnsafeWrapper

            -
            public UnsafeWrapper()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            atomicAdd

            -
            public static int atomicAdd(int[] _arr,
            -            int _index,
            -            int _delta)
            -
          • -
          - - - -
            -
          • -

            arrayBaseOffset

            -
            public static int arrayBaseOffset(java.lang.Class<?> _arrayClass)
            -
          • -
          - - - -
            -
          • -

            arrayIndexScale

            -
            public static int arrayIndexScale(java.lang.Class<?> _arrayClass)
            -
          • -
          - - - -
            -
          • -

            getObject

            -
            public static java.lang.Object getObject(java.lang.Object _object,
            -                         long _offset)
            -
          • -
          - - - -
            -
          • -

            getInt

            -
            public static int getInt(java.lang.Object _object,
            -         long _offset)
            -
          • -
          - - - -
            -
          • -

            getFloat

            -
            public static float getFloat(java.lang.Object _object,
            -             long _offset)
            -
          • -
          - - - -
            -
          • -

            getByte

            -
            public static byte getByte(java.lang.Object _object,
            -           long _offset)
            -
          • -
          - - - -
            -
          • -

            getBoolean

            -
            public static boolean getBoolean(java.lang.Object _object,
            -                 long _offset)
            -
          • -
          - - - -
            -
          • -

            getLong

            -
            public static long getLong(java.lang.Object _object,
            -           long _offset)
            -
          • -
          - - - -
            -
          • -

            putBoolean

            -
            public static void putBoolean(java.lang.Object _object,
            -              long _offset,
            -              boolean _boolean)
            -
          • -
          - - - -
            -
          • -

            putFloat

            -
            public static void putFloat(java.lang.Object _object,
            -            long _offset,
            -            float _float)
            -
          • -
          - - - -
            -
          • -

            putInt

            -
            public static void putInt(java.lang.Object _object,
            -          long _offset,
            -          int _int)
            -
          • -
          - - - -
            -
          • -

            putDouble

            -
            public static void putDouble(java.lang.Object _object,
            -             long _offset,
            -             double _double)
            -
          • -
          - - - -
            -
          • -

            putByte

            -
            public static void putByte(java.lang.Object _object,
            -           long _offset,
            -           byte _byte)
            -
          • -
          - - - -
            -
          • -

            putLong

            -
            public static void putLong(java.lang.Object _object,
            -           long _offset,
            -           long _long)
            -
          • -
          - - - -
            -
          • -

            objectFieldOffset

            -
            public static long objectFieldOffset(java.lang.reflect.Field _field)
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/class-use/OpenCLUtil.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/class-use/OpenCLUtil.html deleted file mode 100644 index 7fe0a7fa..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/class-use/OpenCLUtil.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.util.OpenCLUtil - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.util.OpenCLUtil

      -
      -
      No usage of com.amd.aparapi.internal.util.OpenCLUtil
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/class-use/UnsafeWrapper.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/class-use/UnsafeWrapper.html deleted file mode 100644 index d34e739a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/class-use/UnsafeWrapper.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.util.UnsafeWrapper - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.util.UnsafeWrapper

      -
      -
      No usage of com.amd.aparapi.internal.util.UnsafeWrapper
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-frame.html deleted file mode 100644 index 5b403a86..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -com.amd.aparapi.internal.util - - - - -

      com.amd.aparapi.internal.util

      -
      -

      Classes

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-summary.html deleted file mode 100644 index 302a8a22..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-summary.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - -com.amd.aparapi.internal.util - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.util

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - -
        Class Summary 
        ClassDescription
        OpenCLUtil -
        This utility class encapsulates the necessary actions required to query underlying OpenCL information
        -
        UnsafeWrapper -
        A wrapper around sun.misc.Unsafe for handling atomic operations, copies from fields to arrays and vice versa.
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-tree.html deleted file mode 100644 index 6430d9a1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-tree.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - -com.amd.aparapi.internal.util Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.util

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-use.html deleted file mode 100644 index 16468106..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/util/package-use.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.util - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.util

      -
      -
      No usage of com.amd.aparapi.internal.util
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/BlockWriter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/BlockWriter.html deleted file mode 100644 index 48fc3cc0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/BlockWriter.html +++ /dev/null @@ -1,592 +0,0 @@ - - - - - -BlockWriter - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.writer
      -

      Class BlockWriter

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.internal.writer.BlockWriter
        • -
        -
      • -
      -
      -
        -
      • -
        -
        Direct Known Subclasses:
        -
        InstructionHelper.StringWriter, KernelWriter
        -
        -
        -
        -
        public abstract class BlockWriter
        -extends java.lang.Object
        -
        Base abstract class for converting Aparapi IR to text.
        -
        Author:
        -
        gfrost
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/KernelWriter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/KernelWriter.html deleted file mode 100644 index 3619595a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/KernelWriter.html +++ /dev/null @@ -1,500 +0,0 @@ - - - - - -KernelWriter - - - - - - - - - - - -
      -
      com.amd.aparapi.internal.writer
      -

      Class KernelWriter

      -
      -
      - -
      -
        -
      • -
        -
        -
        public abstract class KernelWriter
        -extends BlockWriter
        -
      • -
      -
      -
      - -
      -
      - -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/class-use/BlockWriter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/class-use/BlockWriter.html deleted file mode 100644 index 4c1d1a98..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/class-use/BlockWriter.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.writer.BlockWriter - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.writer.BlockWriter

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/class-use/KernelWriter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/class-use/KernelWriter.html deleted file mode 100644 index 0ec9530a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/class-use/KernelWriter.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.internal.writer.KernelWriter - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.internal.writer.KernelWriter

      -
      -
      No usage of com.amd.aparapi.internal.writer.KernelWriter
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-frame.html deleted file mode 100644 index 21d4507f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-frame.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -com.amd.aparapi.internal.writer - - - - -

      com.amd.aparapi.internal.writer

      -
      -

      Classes

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-summary.html deleted file mode 100644 index 466813b8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-summary.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - -com.amd.aparapi.internal.writer - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.internal.writer

      -
      -
      -
        -
      • - - - - - - - - - - - - - - - - -
        Class Summary 
        ClassDescription
        BlockWriter -
        Base abstract class for converting Aparapi IR to text.
        -
        KernelWriter 
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-tree.html deleted file mode 100644 index 1250df27..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-tree.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - -com.amd.aparapi.internal.writer Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.internal.writer

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object - -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-use.html deleted file mode 100644 index 799be95f..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/internal/writer/package-use.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.internal.writer - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.internal.writer

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Arg.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Arg.html deleted file mode 100644 index e7ad0a0a..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Arg.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.Arg - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Arg

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Arg
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Constant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Constant.html deleted file mode 100644 index d41b0d4b..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Constant.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.Constant - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Constant

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Constant
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Get.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Get.html deleted file mode 100644 index 4696b83c..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Get.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - -OpenCL.Get - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Get

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Get
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalReadOnly.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalReadOnly.html deleted file mode 100644 index d4d961e8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalReadOnly.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.GlobalReadOnly - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.GlobalReadOnly

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.GlobalReadOnly
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalReadWrite.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalReadWrite.html deleted file mode 100644 index bbfc4949..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalReadWrite.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.GlobalReadWrite - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.GlobalReadWrite

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.GlobalReadWrite
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalWriteOnly.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalWriteOnly.html deleted file mode 100644 index 874938f8..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.GlobalWriteOnly.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.GlobalWriteOnly - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.GlobalWriteOnly

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.GlobalWriteOnly
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Kernel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Kernel.html deleted file mode 100644 index 2b2ce491..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Kernel.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.Kernel - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Kernel

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=METHOD)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Kernel
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Local.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Local.html deleted file mode 100644 index 15cf6ab2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Local.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.Local - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Local

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Local
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Put.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Put.html deleted file mode 100644 index 5655c872..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Put.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - - -OpenCL.Put - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Put

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=PARAMETER)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Put
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Resource.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Resource.html deleted file mode 100644 index efe36985..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Resource.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.Resource - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Resource

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=TYPE)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Resource
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Source.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Source.html deleted file mode 100644 index d12125c4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.Source.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -OpenCL.Source - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Annotation Type OpenCL.Source

      -
      -
      -
      -
        -
      • -
        -
        -
        @Target(value=TYPE)
        -@Retention(value=RUNTIME)
        -public static @interface OpenCL.Source
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Required Element Summary

          - - - - - - - - - - -
          Required Elements 
          Modifier and TypeRequired Element and Description
          java.lang.Stringvalue 
          -
        • -
        -
      • -
      -
      -
      -
        -
      • - -
          -
        • - - -

          Element Detail

          - - - -
            -
          • -

            value

            -
            public abstract java.lang.String value
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.html deleted file mode 100644 index 4473cbf2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCL.html +++ /dev/null @@ -1,655 +0,0 @@ - - - - - -OpenCL - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Interface OpenCL<T>

      -
      -
      -
      -
        -
      • -
        -
        All Known Implementing Classes:
        -
        OpenCLAdapter
        -
        -
        -
        -
        public interface OpenCL<T>
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Field Detail

          - - - - - - - -
            -
          • -

            CL_KHR_SELECT_FPROUNDING_MODE

            -
            static final java.lang.String CL_KHR_SELECT_FPROUNDING_MODE
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_GLOBAL_INT32_BASE_ATOMICS

            -
            static final java.lang.String CL_KHR_GLOBAL_INT32_BASE_ATOMICS
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_GLOBAL_INT32_EXTENDED_ATOMICS

            -
            static final java.lang.String CL_KHR_GLOBAL_INT32_EXTENDED_ATOMICS
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_LOCAL_INT32_BASE_ATOMICS

            -
            static final java.lang.String CL_KHR_LOCAL_INT32_BASE_ATOMICS
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_LOCAL_INT32_EXTENDED_ATOMICS

            -
            static final java.lang.String CL_KHR_LOCAL_INT32_EXTENDED_ATOMICS
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_INT64_BASE_ATOMICS

            -
            static final java.lang.String CL_KHR_INT64_BASE_ATOMICS
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_INT64_EXTENDED_ATOMICS

            -
            static final java.lang.String CL_KHR_INT64_EXTENDED_ATOMICS
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_3D_IMAGE_WRITES

            -
            static final java.lang.String CL_KHR_3D_IMAGE_WRITES
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - -
            -
          • -

            CL_KHR_BYTE_ADDRESSABLE_SUPPORT

            -
            static final java.lang.String CL_KHR_BYTE_ADDRESSABLE_SUPPORT
            -
            See Also:
            Constant Field Values
            -
          • -
          - - - - - - - -
            -
          • -

            CL_KHR_GL_SHARING

            -
            static final java.lang.String CL_KHR_GL_SHARING
            -
            See Also:
            Constant Field Values
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            put

            -
            T put(float[] array)
            -
          • -
          - - - -
            -
          • -

            put

            -
            T put(int[] array)
            -
          • -
          - - - -
            -
          • -

            put

            -
            T put(short[] array)
            -
          • -
          - - - -
            -
          • -

            put

            -
            T put(byte[] array)
            -
          • -
          - - - -
            -
          • -

            put

            -
            T put(char[] array)
            -
          • -
          - - - -
            -
          • -

            put

            -
            T put(boolean[] array)
            -
          • -
          - - - -
            -
          • -

            put

            -
            T put(double[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(float[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(int[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(short[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(char[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(boolean[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(double[] array)
            -
          • -
          - - - -
            -
          • -

            get

            -
            T get(byte[] array)
            -
          • -
          - - - -
            -
          • -

            begin

            -
            T begin()
            -
          • -
          - - - -
            -
          • -

            end

            -
            T end()
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCLAdapter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCLAdapter.html deleted file mode 100644 index 437b1651..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/OpenCLAdapter.html +++ /dev/null @@ -1,550 +0,0 @@ - - - - - -OpenCLAdapter - - - - - - - - - - - -
      -
      com.amd.aparapi.opencl
      -

      Class OpenCLAdapter<T>

      -
      -
      -
        -
      • java.lang.Object
      • -
      • -
          -
        • com.amd.aparapi.opencl.OpenCLAdapter<T>
        • -
        -
      • -
      -
      -
        -
      • -
        -
        All Implemented Interfaces:
        -
        OpenCL<T>
        -
        -
        -
        -
        public class OpenCLAdapter<T>
        -extends java.lang.Object
        -implements OpenCL<T>
        -
      • -
      -
      -
      - -
      -
      -
        -
      • - -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            OpenCLAdapter

            -
            public OpenCLAdapter()
            -
          • -
          -
        • -
        - -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            put

            -
            public T put(byte[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(byte[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            put

            -
            public T put(float[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            put

            -
            public T put(int[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            put

            -
            public T put(short[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            put

            -
            public T put(char[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            put

            -
            public T put(boolean[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            put

            -
            public T put(double[] array)
            -
            -
            Specified by:
            -
            put in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(float[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(int[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(short[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(char[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(boolean[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            get

            -
            public T get(double[] array)
            -
            -
            Specified by:
            -
            get in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            begin

            -
            public T begin()
            -
            -
            Specified by:
            -
            begin in interface OpenCL<T>
            -
            -
          • -
          - - - -
            -
          • -

            end

            -
            public T end()
            -
            -
            Specified by:
            -
            end in interface OpenCL<T>
            -
            -
          • -
          -
        • -
        -
      • -
      -
      -
      - - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Arg.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Arg.html deleted file mode 100644 index bf48b836..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Arg.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Arg - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Arg

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Arg
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Constant.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Constant.html deleted file mode 100644 index b66666f0..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Constant.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Constant - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Constant

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Constant
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Get.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Get.html deleted file mode 100644 index 47732080..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Get.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Get - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Get

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Get
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalReadOnly.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalReadOnly.html deleted file mode 100644 index 47ddef45..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalReadOnly.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.GlobalReadOnly - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.GlobalReadOnly

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.GlobalReadOnly
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalReadWrite.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalReadWrite.html deleted file mode 100644 index e5d87212..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalReadWrite.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.GlobalReadWrite - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.GlobalReadWrite

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.GlobalReadWrite
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalWriteOnly.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalWriteOnly.html deleted file mode 100644 index 60bfa619..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.GlobalWriteOnly.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.GlobalWriteOnly - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.GlobalWriteOnly

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.GlobalWriteOnly
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Kernel.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Kernel.html deleted file mode 100644 index b7ed7975..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Kernel.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Kernel - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Kernel

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Kernel
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Local.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Local.html deleted file mode 100644 index 886dd232..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Local.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Local - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Local

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Local
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Put.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Put.html deleted file mode 100644 index a9daf23d..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Put.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Put - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Put

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Put
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Resource.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Resource.html deleted file mode 100644 index 01b1b8d4..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Resource.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Resource - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Resource

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Resource
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Source.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Source.html deleted file mode 100644 index a8f7c497..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.Source.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCL.Source - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCL.Source

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCL.Source
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.html deleted file mode 100644 index 29915c35..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCL.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - - -Uses of Interface com.amd.aparapi.opencl.OpenCL - - - - - - - - - - -
      -

      Uses of Interface
      com.amd.aparapi.opencl.OpenCL

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCLAdapter.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCLAdapter.html deleted file mode 100644 index 1148d693..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/class-use/OpenCLAdapter.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Uses of Class com.amd.aparapi.opencl.OpenCLAdapter - - - - - - - - - - -
      -

      Uses of Class
      com.amd.aparapi.opencl.OpenCLAdapter

      -
      -
      No usage of com.amd.aparapi.opencl.OpenCLAdapter
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-frame.html deleted file mode 100644 index 3e65fb41..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-frame.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - -com.amd.aparapi.opencl - - - - -

      com.amd.aparapi.opencl

      - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-summary.html deleted file mode 100644 index 7d30e0dc..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-summary.html +++ /dev/null @@ -1,203 +0,0 @@ - - - - - -com.amd.aparapi.opencl - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi.opencl

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-tree.html deleted file mode 100644 index a09669e1..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-tree.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - -com.amd.aparapi.opencl Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi.opencl

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      -
        -
      • java.lang.Object - -
      • -
      -

      Interface Hierarchy

      -
        -
      • com.amd.aparapi.opencl.OpenCL<T>
      • -
      -

      Annotation Type Hierarchy

      -
        -
      • com.amd.aparapi.opencl.OpenCL.Put (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Get (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Source (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Resource (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Kernel (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Arg (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.GlobalReadWrite (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.GlobalReadOnly (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.GlobalWriteOnly (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Local (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Constant (implements java.lang.annotation.Annotation)
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-use.html deleted file mode 100644 index 06a0cfd2..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/opencl/package-use.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi.opencl - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi.opencl

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/package-frame.html b/com.amd.aparapi/doc/api/com/amd/aparapi/package-frame.html deleted file mode 100644 index d8bab545..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/package-frame.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - -com.amd.aparapi - - - - -

      com.amd.aparapi

      -
      -

      Interfaces

      - -

      Classes

      - -

      Enums

      - -

      Annotation Types

      - -
      - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/package-summary.html b/com.amd.aparapi/doc/api/com/amd/aparapi/package-summary.html deleted file mode 100644 index 00f0c793..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/package-summary.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - -com.amd.aparapi - - - - - - - -
      - - - - - -
      - - -
      -

      Package com.amd.aparapi

      -
      -
      -
        -
      • - - - - - - - - - - - - -
        Interface Summary 
        InterfaceDescription
        Config.InstructionListener 
        -
      • -
      • - - - - - - - - - - - - - - - - - - - - - - - - -
        Class Summary 
        ClassDescription
        Config -
        A central location for holding all runtime configurable properties as well as logging configuration.
        -
        Kernel -
        A kernel encapsulates a data parallel algorithm that will execute either on a GPU - (through conversion to OpenCL) or on a CPU via a Java Thread Pool.
        -
        ProfileInfo 
        Range -
        A representation of 1, 2 or 3 dimensional range of execution.
        -
        -
      • -
      • - - - - - - - - - - - - -
        Enum Summary 
        EnumDescription
        Kernel.EXECUTION_MODE -
        The execution mode ENUM enumerates the possible modes of executing a kernel.
        -
        -
      • -
      • - - - - - - - - - - - - - - - - -
        Annotation Types Summary 
        Annotation TypeDescription
        Kernel.Constant -
        We can use this Annotation to 'tag' intended constant buffers.
        -
        Kernel.Local -
        We can use this Annotation to 'tag' intended local buffers.
        -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/package-tree.html b/com.amd.aparapi/doc/api/com/amd/aparapi/package-tree.html deleted file mode 100644 index 771fb782..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/package-tree.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - -com.amd.aparapi Class Hierarchy - - - - - - - -
      - - - - - -
      - - -
      -

      Hierarchy For Package com.amd.aparapi

      -Package Hierarchies: - -
      -
      -

      Class Hierarchy

      - -

      Interface Hierarchy

      - -

      Annotation Type Hierarchy

      -
        -
      • com.amd.aparapi.Kernel.Local (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.Kernel.Constant (implements java.lang.annotation.Annotation)
      • -
      -

      Enum Hierarchy

      -
        -
      • java.lang.Object -
          -
        • java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable) - -
        • -
        -
      • -
      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/com/amd/aparapi/package-use.html b/com.amd.aparapi/doc/api/com/amd/aparapi/package-use.html deleted file mode 100644 index 07b28d63..00000000 --- a/com.amd.aparapi/doc/api/com/amd/aparapi/package-use.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - -Uses of Package com.amd.aparapi - - - - - - - - - - -
      -

      Uses of Package
      com.amd.aparapi

      -
      -
      - -
      - - - - - - diff --git a/com.amd.aparapi/doc/api/constant-values.html b/com.amd.aparapi/doc/api/constant-values.html deleted file mode 100644 index 1106eaed..00000000 --- a/com.amd.aparapi/doc/api/constant-values.html +++ /dev/null @@ -1,743 +0,0 @@ - - - - - -Constant Field Values - - - - - - - -
      - - - - - -
      - - -
      -

      Constant Field Values

      -

      Contents

      - -
      -
      - - -

      com.amd.*

      - - - - -
        -
      • - - - - - - - - - - - - - - -
        com.amd.aparapi.internal.writer.BlockWriter 
        Modifier and TypeConstant FieldValue
        - -public static final java.lang.StringarrayLengthMangleSuffix"__javaArrayLength"
        -
      • -
      • - - - - - - - - - - - - - - - - - - - - - - - - -
        com.amd.aparapi.internal.writer.KernelWriter 
        Modifier and TypeConstant FieldValue
        - -public static final java.lang.String__constant"__constant"
        - -public static final java.lang.String__global"__global"
        - -public static final java.lang.String__local"__local"
        -
      • -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/deprecated-list.html b/com.amd.aparapi/doc/api/deprecated-list.html deleted file mode 100644 index af7b2872..00000000 --- a/com.amd.aparapi/doc/api/deprecated-list.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - -Deprecated List - - - - - - - -
      - - - - - -
      - - -
      -

      Deprecated API

      -

      Contents

      -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/help-doc.html b/com.amd.aparapi/doc/api/help-doc.html deleted file mode 100644 index cee59017..00000000 --- a/com.amd.aparapi/doc/api/help-doc.html +++ /dev/null @@ -1,220 +0,0 @@ - - - - - -API Help - - - - - - - -
      - - - - - -
      - - -
      -

      How This API Document Is Organized

      -
      This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
      -
      -
      -
        -
      • -

        Overview

        -

        The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

        -
      • -
      • -

        Package

        -

        Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

        -
          -
        • Interfaces (italic)
        • -
        • Classes
        • -
        • Enums
        • -
        • Exceptions
        • -
        • Errors
        • -
        • Annotation Types
        • -
        -
      • -
      • -

        Class/Interface

        -

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

        -
          -
        • Class inheritance diagram
        • -
        • Direct Subclasses
        • -
        • All Known Subinterfaces
        • -
        • All Known Implementing Classes
        • -
        • Class/interface declaration
        • -
        • Class/interface description
        • -
        -
          -
        • Nested Class Summary
        • -
        • Field Summary
        • -
        • Constructor Summary
        • -
        • Method Summary
        • -
        -
          -
        • Field Detail
        • -
        • Constructor Detail
        • -
        • Method Detail
        • -
        -

        Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

        -
      • -
      • -

        Annotation Type

        -

        Each annotation type has its own separate page with the following sections:

        -
          -
        • Annotation Type declaration
        • -
        • Annotation Type description
        • -
        • Required Element Summary
        • -
        • Optional Element Summary
        • -
        • Element Detail
        • -
        -
      • -
      • -

        Enum

        -

        Each enum has its own separate page with the following sections:

        -
          -
        • Enum declaration
        • -
        • Enum description
        • -
        • Enum Constant Summary
        • -
        • Enum Constant Detail
        • -
        -
      • -
      • -

        Use

        -

        Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

        -
      • -
      • -

        Tree (Class Hierarchy)

        -

        There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

        -
          -
        • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
        • -
        • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
        • -
        -
      • -
      • -

        Deprecated API

        -

        The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

        -
      • -
      • -

        Index

        -

        The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

        -
      • -
      • -

        Prev/Next

        -

        These links take you to the next or previous class, interface, package, or related page.

        -
      • -
      • -

        Frames/No Frames

        -

        These links show and hide the HTML frames. All pages are available with or without frames.

        -
      • -
      • -

        All Classes

        -

        The All Classes link shows all classes and interfaces except non-static nested types.

        -
      • -
      • -

        Serialized Form

        -

        Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

        -
      • -
      • -

        Constant Field Values

        -

        The Constant Field Values page lists the static final fields and their values.

        -
      • -
      -This help file applies to API documentation generated using the standard doclet.
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-1.html b/com.amd.aparapi/doc/api/index-files/index-1.html deleted file mode 100644 index d300308a..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-1.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - -A-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      A

      -
      -
      accessInstanceField - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      accessLocalVariable - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      add(Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      Add this instruction to the end of the list.
      -
      -
      add(ClassModel.ConstantPool.Entry) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      add(Object, long, OpenCLMem) - Method in class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
       
      -
      addBranchTarget(InstructionSet.Branch) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      addExecutionModes(Kernel.EXECUTION_MODE...) - Method in class com.amd.aparapi.Kernel
      -
      -
      set possible fallback path for execution modes.
      -
      -
      addOpenCLDevice(OpenCLDevice) - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      AparapiException - Exception in com.amd.aparapi.internal.exception
      -
      -
      We use AparapiException class and subclasses to wrap other - Exception classes, mainly to allow differentiation between Aparapi specific issues at runtime.
      -
      -
      AparapiException(String) - Constructor for exception com.amd.aparapi.internal.exception.AparapiException
      -
       
      -
      AparapiException(Throwable) - Constructor for exception com.amd.aparapi.internal.exception.AparapiException
      -
       
      -
      ARG_ARRAY_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_BYTE_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_CONST_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_DOUBLE_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_FLOAT_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_GLOBAL_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_INT_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_ISARG_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_LOCAL_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_LONG_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_PRIMITIVE_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_READONLY_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_READWRITE_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_SHORT_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      ARG_WRITEONLY_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      arrayBaseOffset(Class<?>) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      arrayIndexScale(Class<?>) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      arrayLengthMangleSuffix - Static variable in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      ARROWGAP - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      arrowHeadOut - Variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      asBranch() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      assignToArrayElement - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      assignToInstanceField - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      assignToLocalVariable - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      atomicAdd(int[], int, int) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-10.html b/com.amd.aparapi/doc/api/index-files/index-10.html deleted file mode 100644 index 369aa871..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-10.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - -J-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      J

      -
      -
      JavaDevice - Class in com.amd.aparapi.device
      -
       
      -
      JavaDevice() - Constructor for class com.amd.aparapi.device.JavaDevice
      -
       
      -
      javaToCLIdentifierMap - Static variable in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-11.html b/com.amd.aparapi/doc/api/index-files/index-11.html deleted file mode 100644 index ae0b3acd..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-11.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - -K-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      K

      -
      -
      kernel - Variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      Kernel - Class in com.amd.aparapi
      -
      -
      A kernel encapsulates a data parallel algorithm that will execute either on a GPU - (through conversion to OpenCL) or on a CPU via a Java Thread Pool.
      -
      -
      Kernel() - Constructor for class com.amd.aparapi.Kernel
      -
       
      -
      Kernel.Constant - Annotation Type in com.amd.aparapi
      -
      -
      We can use this Annotation to 'tag' intended constant buffers.
      -
      -
      Kernel.Entry - Class in com.amd.aparapi
      -
       
      -
      Kernel.Entry() - Constructor for class com.amd.aparapi.Kernel.Entry
      -
       
      -
      Kernel.EXECUTION_MODE - Enum in com.amd.aparapi
      -
      -
      The execution mode ENUM enumerates the possible modes of executing a kernel.
      -
      -
      Kernel.KernelState - Class in com.amd.aparapi
      -
      -
      This class is for internal Kernel state management
      -
      -
      Kernel.Local - Annotation Type in com.amd.aparapi
      -
      -
      We can use this Annotation to 'tag' intended local buffers.
      -
      -
      KernelArg - Class in com.amd.aparapi.internal.kernel
      -
      -
      Each field (or captured field in the case of an anonymous inner class) referenced by any bytecode reachable from the users Kernel.run(), will - need to be represented as a KernelArg.
      -
      -
      KernelArgJNI - Class in com.amd.aparapi.internal.jni
      -
      -
      This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
      -
      -
      KernelArgJNI() - Constructor for class com.amd.aparapi.internal.jni.KernelArgJNI
      -
       
      -
      KernelRunner - Class in com.amd.aparapi.internal.kernel
      -
      -
      The class is responsible for executing Kernel implementations.
      -
      -
      KernelRunner(Kernel) - Constructor for class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Create a KernelRunner for a specific Kernel instance.
      -
      -
      KernelRunnerJNI - Class in com.amd.aparapi.internal.jni
      -
      -
      This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
      -
      -
      KernelRunnerJNI() - Constructor for class com.amd.aparapi.internal.jni.KernelRunnerJNI
      -
       
      -
      KernelWriter - Class in com.amd.aparapi.internal.writer
      -
       
      -
      KernelWriter() - Constructor for class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-12.html b/com.amd.aparapi/doc/api/index-files/index-12.html deleted file mode 100644 index c825b2a7..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-12.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - -L-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      L

      -
      -
      label - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.InstructionView
      -
       
      -
      line(Graphics2D, Stroke, double, double, double, double) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      line(Graphics2D, double, double, double, double) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      LOCAL_ANNOTATION_NAME - Static variable in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      LOCAL_SUFFIX - Static variable in class com.amd.aparapi.Kernel
      -
      -
      We can use this suffix to 'tag' intended local buffers.
      -
      -
      longHandDecLocalVariable - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      longHandFieldArrayElementDecrement - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      longHandFieldArrayElementIncrement - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      longHandIncLocalVariable - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-13.html b/com.amd.aparapi/doc/api/index-files/index-13.html deleted file mode 100644 index 7184ef66..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-13.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - - -M-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      M

      -
      -
      main(String[]) - Static method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      matches(Instruction) - Method in class com.amd.aparapi.internal.instruction.InstructionPattern.AssignableInstructionMatcher
      -
       
      -
      matches(Instruction, InstructionPattern.InstructionMatcher) - Method in class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatcher
      -
       
      -
      MAX_GROUP_SIZE - Static variable in class com.amd.aparapi.Range
      -
       
      -
      MAX_OPENCL_GROUP_SIZE - Static variable in class com.amd.aparapi.Range
      -
       
      -
      MEM_COPY_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLMem
      -
       
      -
      MEM_DIRTY_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLMem
      -
       
      -
      MEM_ENQUEUED_BIT - Static variable in class com.amd.aparapi.internal.opencl.OpenCLMem
      -
       
      -
      memVal - Variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      methodCall - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      MethodModel - Class in com.amd.aparapi.internal.model
      -
       
      -
      methodUsesPutfield() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-14.html b/com.amd.aparapi/doc/api/index-files/index-14.html deleted file mode 100644 index 6eb8af1c..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-14.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - -N-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      N

      -
      -
      newInstruction(MethodModel, ByteReader, boolean) - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      newLine() - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      NONE - Static variable in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-15.html b/com.amd.aparapi/doc/api/index-files/index-15.html deleted file mode 100644 index 8732daba..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-15.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - -O-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      O

      -
      -
      objectFieldOffset(Field) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      ok - Variable in class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch
      -
       
      -
      OpenCL<T> - Interface in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Arg - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Constant - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Get - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.GlobalReadOnly - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.GlobalReadWrite - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.GlobalWriteOnly - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Kernel - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Local - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Put - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Resource - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCL.Source - Annotation Type in com.amd.aparapi.opencl
      -
       
      -
      OpenCLAdapter<T> - Class in com.amd.aparapi.opencl
      -
       
      -
      OpenCLAdapter() - Constructor for class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      OpenCLArgDescriptor - Class in com.amd.aparapi.internal.opencl
      -
       
      -
      OpenCLArgDescriptor(String, long) - Constructor for class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
      -
      Full constructor
      -
      -
      OpenCLDevice - Class in com.amd.aparapi.device
      -
       
      -
      OpenCLDevice(OpenCLPlatform, long, Device.TYPE) - Constructor for class com.amd.aparapi.device.OpenCLDevice
      -
      -
      Minimal constructor
      -
      -
      OpenCLDevice.DeviceComparitor - Interface in com.amd.aparapi.device
      -
       
      -
      OpenCLDevice.DeviceSelector - Interface in com.amd.aparapi.device
      -
       
      -
      OpenCLDevice.OpenCLInvocationHandler<T extends OpenCL<T>> - Class in com.amd.aparapi.device
      -
       
      -
      OpenCLDevice.OpenCLInvocationHandler(OpenCLProgram, Map<String, OpenCLKernel>) - Constructor for class com.amd.aparapi.device.OpenCLDevice.OpenCLInvocationHandler
      -
       
      -
      OpenCLJNI - Class in com.amd.aparapi.internal.jni
      -
      -
      This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
      -
      -
      OpenCLJNI() - Constructor for class com.amd.aparapi.internal.jni.OpenCLJNI
      -
       
      -
      OpenCLKernel - Class in com.amd.aparapi.internal.opencl
      -
       
      -
      OpenCLKernel(OpenCLProgram, String, List<OpenCLArgDescriptor>) - Constructor for class com.amd.aparapi.internal.opencl.OpenCLKernel
      -
      -
      Minimal constructor
      -
      -
      OpenCLLoader - Class in com.amd.aparapi.internal.opencl
      -
      -
      This class is intended to be a singleton which determines if OpenCL is available upon startup of Aparapi
      -
      -
      OpenCLLoader() - Constructor for class com.amd.aparapi.internal.opencl.OpenCLLoader
      -
       
      -
      OpenCLMem - Class in com.amd.aparapi.internal.opencl
      -
       
      -
      OpenCLMem() - Constructor for class com.amd.aparapi.internal.opencl.OpenCLMem
      -
       
      -
      OpenCLPlatform - Class in com.amd.aparapi.internal.opencl
      -
       
      -
      OpenCLPlatform() - Constructor for class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
      -
      Default constructor
      -
      -
      OpenCLPlatform(long, String, String, String) - Constructor for class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
      -
      Full constructor
      -
      -
      OpenCLProgram - Class in com.amd.aparapi.internal.opencl
      -
       
      -
      OpenCLProgram(OpenCLDevice, String) - Constructor for class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
      -
      Minimal constructor
      -
      -
      OpenCLProgram(long, long, long, OpenCLDevice, String) - Constructor for class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
      -
      Full constructor
      -
      -
      OpenCLUtil - Class in com.amd.aparapi.internal.util
      -
      -
      This utility class encapsulates the necessary actions required to query underlying OpenCL information
      -
      -
      OpenCLUtil() - Constructor for class com.amd.aparapi.internal.util.OpenCLUtil
      -
       
      -
      out() - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      overlaps(InstructionHelper.BranchVector) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-16.html b/com.amd.aparapi/doc/api/index-files/index-16.html deleted file mode 100644 index 5c6e7187..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-16.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - -P-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      P

      -
      -
      pad(String, int) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      parse(Class<?>) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      We extract the class's classloader and name and delegate to private parse method.
      -
      -
      peekU2() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      producesStack() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      ProfileInfo - Class in com.amd.aparapi
      -
       
      -
      ProfileInfo(String, int, long, long, long, long) - Constructor for class com.amd.aparapi.ProfileInfo
      -
      -
      Minimal constructor
      -
      -
      put(Object) - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed.
      -
      -
      put(long[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(double[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(float[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(int[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(byte[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(char[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(boolean[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Tag this array so that it is explicitly enqueued before the kernel is executed
      -
      -
      put(float[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(int[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(short[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(byte[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(char[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(boolean[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(double[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      put(byte[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      put(float[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      put(int[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      put(short[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      put(char[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      put(boolean[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      put(double[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      putBoolean(Object, long, boolean) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      putByte(Object, long, byte) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      putDouble(Object, long, double) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      putFloat(Object, long, float) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      putInt(Object, long, int) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      putLong(Object, long, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-17.html b/com.amd.aparapi/doc/api/index-files/index-17.html deleted file mode 100644 index f094cfa9..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-17.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - -R-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      R

      -
      -
      Range - Class in com.amd.aparapi
      -
      -
      A representation of 1, 2 or 3 dimensional range of execution.
      -
      -
      Range(Device, int) - Constructor for class com.amd.aparapi.Range
      -
      -
      Minimal constructor
      -
      -
      RangeException - Exception in com.amd.aparapi.internal.exception
      -
       
      -
      RangeException(String) - Constructor for exception com.amd.aparapi.internal.exception.RangeException
      -
       
      -
      RangeJNI - Class in com.amd.aparapi.internal.jni
      -
      -
      This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
      -
      -
      RangeJNI() - Constructor for class com.amd.aparapi.internal.jni.RangeJNI
      -
       
      -
      remapped(Object, long, OpenCLMem, long) - Method in class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
       
      -
      removeBranchTarget(InstructionSet.Branch) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      RemoveMe - Annotation Type in com.amd.aparapi.internal.annotation
      -
      -
      Use this annotation to tag fields that we think need to be removed (method/field/var)
      -
      -
      render(int) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      render(int, int) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      render(Graphics2D) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      replaceInclusive(Instruction, Instruction, Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      Inclusive replace between _head and _tail with _newOne.
      -
      -
      replaceSuperClazz(ClassModel) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      requiresAtomic32Pragma() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      requiresAtomic64Pragma() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      requiresByteAddressableStorePragma() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      requiresByteAddressableStorePragma() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      requiresDoublePragma() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      requiresDoublePragma() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      resolveAccessorCandidate(InstructionSet.MethodCall, ClassModel.ConstantPool.MethodEntry) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      retarget(Instruction) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      ring() - Method in class com.amd.aparapi.internal.tool.InstructionViewer.DoorBell
      -
       
      -
      run() - Method in class com.amd.aparapi.Kernel.Entry
      -
       
      -
      run() - Method in class com.amd.aparapi.Kernel
      -
      -
      The entry point of a kernel.
      -
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-18.html b/com.amd.aparapi/doc/api/index-files/index-18.html deleted file mode 100644 index 674b3122..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-18.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - -S-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      S

      -
      -
      s2() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      s4() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      same(ClassModel.ConstantPool.Entry) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry
      -
       
      -
      sameAs(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      select(OpenCLDevice, OpenCLDevice) - Method in interface com.amd.aparapi.device.OpenCLDevice.DeviceComparitor
      -
       
      -
      select(OpenCLDevice) - Method in interface com.amd.aparapi.device.OpenCLDevice.DeviceSelector
      -
       
      -
      select(OpenCLDevice.DeviceSelector) - Static method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      select(OpenCLDevice.DeviceComparitor) - Static method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      select(double, double) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      setBranchSet(BranchSet) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch
      -
       
      -
      setBreakOrContinue(boolean) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      setChildren(Instruction, Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setDims(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setExecutionMode(Kernel.EXECUTION_MODE) - Method in class com.amd.aparapi.Kernel
      -
      -
      Set the execution mode.
      -
      -
      setExplicit(boolean) - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
       
      -
      setExplicit(boolean) - Method in class com.amd.aparapi.Kernel
      -
      -
      For dev purposes (we should remove this for production) allow us to define that this Kernel uses explicit memory management
      -
      -
      setFallbackExecutionMode() - Method in class com.amd.aparapi.Kernel
      -
       
      -
      setGlobalId(int, int) - Method in class com.amd.aparapi.Kernel.KernelState
      -
      -
      Set a specific index value
      -
      -
      setGlobalIds(int[]) - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      setGlobalMemSize(long) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      setGlobalSize_0(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setGlobalSize_1(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setGlobalSize_2(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setGroupId(int, int) - Method in class com.amd.aparapi.Kernel.KernelState
      -
      -
      Set a specific index value
      -
      -
      setGroupIds(int[]) - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      setKernelInstance(Object) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      setLength(int) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setLocalBarrier(CyclicBarrier) - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      setLocalId(int, int) - Method in class com.amd.aparapi.Kernel.KernelState
      -
      -
      Set a specific index value
      -
      -
      setLocalIds(int[]) - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      setLocalIsDerived(boolean) - Method in class com.amd.aparapi.Range
      -
       
      -
      setLocalMemSize(long) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      setLocalSize_0(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setLocalSize_1(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setLocalSize_2(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setMaxComputeUnits(int) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      setMaxMemAllocSize(long) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      setMaxWorkGroupSize(int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      setMaxWorkGroupSize(int) - Method in class com.amd.aparapi.Range
      -
       
      -
      setMaxWorkItemDimensions(int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      setMaxWorkItemSize(int[]) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      setMaxWorkItemSize(int[]) - Method in class com.amd.aparapi.Range
      -
       
      -
      setNext(BranchSet.LogicalExpressionNode) - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      setNextExpr(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setNextPC(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setOffset(int) - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      setParent(BranchSet.LogicalExpressionNode) - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      setParentExpr(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setPassId(int) - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      setPrevExpr(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setPrevPC(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      setRange(Range) - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      setRequiredPragmas(Instruction) - Method in class com.amd.aparapi.internal.model.MethodModel
      -
      -
      Look at each instruction for use of long/double or byte writes which - require pragmas to be used in the OpenCL source
      -
      -
      setRequiresAtomics32Pragma(boolean) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      setRequiresAtomics64Pragma(boolean) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      setTarget(Instruction) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      setTarget(int, Instruction) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      setTotalStructSize(int) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      setType(Device.TYPE) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      setValid(boolean) - Method in class com.amd.aparapi.Range
      -
       
      -
      shouldFallback() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      showAndTell(String, Instruction, Instruction) - Method in interface com.amd.aparapi.Config.InstructionListener
      -
       
      -
      showAndTell(String, Instruction, Instruction) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      showExpressions - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      showPc - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      SIGC_ARRAY - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_BOOLEAN - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_BYTE - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_CHAR - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_CLASS - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_DOUBLE - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_END_CLASS - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_END_METHOD - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_FLOAT - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_INT - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_LONG - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_PACKAGE - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_SHORT - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_START_METHOD - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      SIGC_VOID - Static variable in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      size() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      skip(int) - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      snooze() - Method in class com.amd.aparapi.internal.tool.InstructionViewer.DoorBell
      -
       
      -
      stroke(Graphics2D, Stroke, Shape) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      sync() - Method in class com.amd.aparapi.internal.tool.InstructionViewer.Form
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-19.html b/com.amd.aparapi/doc/api/index-files/index-19.html deleted file mode 100644 index 842d47aa..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-19.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - -T-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      T

      -
      -
      test(boolean) - Static method in class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch
      -
       
      -
      text(Graphics2D, String, double, double) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      text(Graphics2D, Color, String, double, double) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      THREADS_PER_CORE - Static variable in class com.amd.aparapi.Range
      -
       
      -
      THROUGH - Static variable in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      toInstruction() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      TOP_ARROW - Static variable in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      toString() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.OtherEntry
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodEntry
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      toString() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table
      -
       
      -
      toString() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      toString() - Method in class com.amd.aparapi.Range
      -
      - -
      -
      transform(ExpressionList, Instruction) - Method in class com.amd.aparapi.internal.instruction.InstructionTransformer
      -
       
      -
      TRUE - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch
      -
       
      -
      tryNextExecutionMode() - Method in class com.amd.aparapi.Kernel
      -
      -
      try the next execution path in the list if there aren't any more than give up
      -
      -
      txFormDups(ExpressionList, Instruction) - Method in class com.amd.aparapi.internal.model.MethodModel
      -
      -
      DUP family of instructions break our stack unwind model (whereby we treat instructions like the oeprands they create/consume).
      -
      -
      typeName(char) - Static method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Convert a given JNI character type (say 'I') to its type name ('int').
      -
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-2.html b/com.amd.aparapi/doc/api/index-files/index-2.html deleted file mode 100644 index 52c0aef8..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-2.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - -B-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      B

      -
      -
      begin() - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      begin() - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      best() - Static method in class com.amd.aparapi.device.Device
      -
       
      -
      bind(Class<T>, InputStream) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      bind(Class<T>) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      bind(Class<T>, String) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      bitIsSet(int) - Method in enum com.amd.aparapi.internal.model.ClassModel.Access
      -
       
      -
      bits - Variable in class com.amd.aparapi.internal.opencl.OpenCLArgDescriptor
      -
       
      -
      BlockWriter - Class in com.amd.aparapi.internal.writer
      -
      -
      Base abstract class for converting Aparapi IR to text.
      -
      -
      BlockWriter() - Constructor for class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      BOTTOM_ARROW - Static variable in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      BranchSet - Class in com.amd.aparapi.internal.instruction
      -
      -
      Deals with the issue of recognizing that a sequence of bytecode branch instructions actually represent a single if/while with a logical expression.
      -
      -
      BranchSet(InstructionSet.Branch) - Constructor for class com.amd.aparapi.internal.instruction.BranchSet
      -
      -
      We construct a branch set with the 'last' branch.
      -
      -
      BranchSet.CompoundLogicalExpressionNode - Class in com.amd.aparapi.internal.instruction
      -
      -
      A node in the expression tree representing a simple logical expression.
      -
      -
      BranchSet.CompoundLogicalExpressionNode(boolean, BranchSet.LogicalExpressionNode, BranchSet.LogicalExpressionNode) - Constructor for class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      BranchSet.LogicalExpressionNode - Class in com.amd.aparapi.internal.instruction
      -
      -
      Base abstract class used to hold information used to construct node tree for logical expressions.
      -
      -
      BranchSet.LogicalExpressionNode() - Constructor for class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      BranchSet.SimpleLogicalExpressionNode - Class in com.amd.aparapi.internal.instruction
      -
      -
      A node in the expression tree representing a simple logical expression.
      -
      -
      BranchSet.SimpleLogicalExpressionNode(InstructionSet.ConditionalBranch) - Constructor for class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      -
       
      -
      branchTarget - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.InstructionView
      -
       
      -
      buildBranchGraphs(Map<Integer, Instruction>) - Method in class com.amd.aparapi.internal.model.MethodModel
      -
      -
      Here we connect the branch nodes to the instruction that they branch to.
      -
      -
      ByteBuffer - Class in com.amd.aparapi.internal.reader
      -
      -
      Used to parse ClassFile structure.
      -
      -
      ByteReader - Class in com.amd.aparapi.internal.reader
      -
      -
      Primarily used to parse various ClassFile structures.
      -
      -
      ByteReader(ByteBuffer) - Constructor for class com.amd.aparapi.internal.reader.ByteReader
      -
      -
      Construct form a given ByteBuffer.
      -
      -
      ByteReader(byte[]) - Constructor for class com.amd.aparapi.internal.reader.ByteReader
      -
      -
      Construct form an array of bytes.
      -
      -
      ByteReader(InputStream) - Constructor for class com.amd.aparapi.internal.reader.ByteReader
      -
      -
      Construct form an input stream (say a ClassFile).
      -
      -
      bytes(int) - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-20.html b/com.amd.aparapi/doc/api/index-files/index-20.html deleted file mode 100644 index 10b11f78..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-20.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - -U-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      U

      -
      -
      u1() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      u2() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      u4() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      u8() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      UNCONDITIONAL_START - Static variable in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      unhook() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      unhook() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      UnsafeWrapper - Class in com.amd.aparapi.internal.util
      -
      -
      A wrapper around sun.misc.Unsafe for handling atomic operations, copies from fields to arrays and vice versa.
      -
      -
      UnsafeWrapper() - Constructor for class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      Unused - Annotation Type in com.amd.aparapi.internal.annotation
      -
      -
      Used to tag unused features (methods/fields)
      -
      -
      unwind() - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
       
      -
      updateObjectMemberFieldAccesses(String, ClassModel.ConstantPool.FieldEntry) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      UsedByJNICode - Annotation Type in com.amd.aparapi.internal.annotation
      -
      -
      Be careful changing the name/type of this field as it is referenced from JNI code.
      -
      -
      usesAtomic32(ClassModel.ConstantPool.MethodReferenceEntry) - Static method in class com.amd.aparapi.Kernel
      -
       
      -
      usesAtomic64(ClassModel.ConstantPool.MethodReferenceEntry) - Static method in class com.amd.aparapi.Kernel
      -
       
      -
      usesDouble() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      utf8() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-21.html b/com.amd.aparapi/doc/api/index-files/index-21.html deleted file mode 100644 index 9b6756ac..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-21.html +++ /dev/null @@ -1,225 +0,0 @@ - - - - - -V-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      V

      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.device.Device.TYPE
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.exception.ClassParseException.TYPE
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.ImmediateSpec
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.PopSpec
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.PushSpec
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.model.ClassModel.Access
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.internal.model.ClassModel.ConstantPoolType
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      valueOf(String) - Static method in enum com.amd.aparapi.Kernel.EXECUTION_MODE
      -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      values() - Static method in enum com.amd.aparapi.device.Device.TYPE
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.exception.ClassParseException.TYPE
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.ImmediateSpec
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.PopSpec
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.PushSpec
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.model.ClassModel.Access
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.internal.model.ClassModel.ConstantPoolType
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      values() - Static method in enum com.amd.aparapi.Kernel.EXECUTION_MODE
      -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      verboseBytecodeLabels - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      verboseComparitor - Static variable in class com.amd.aparapi.Config
      -
       
      -
      VGAP - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      VMARGIN - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-22.html b/com.amd.aparapi/doc/api/index-files/index-22.html deleted file mode 100644 index 2480adc1..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-22.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - -W-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      W

      -
      -
      write(String) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      write(MethodModel) - Static method in class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      write(Entrypoint) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      write(String) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      write(BranchSet.LogicalExpressionNode) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      write(Entrypoint) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      write(Entrypoint) - Method in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      writeBlock(Instruction, Instruction) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeComposite(InstructionSet.CompositeInstruction) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeConditional(BranchSet) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeConditional(BranchSet, boolean) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeConditionalBranch16(InstructionSet.ConditionalBranch16, boolean) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeInstruction(Instruction) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeInstruction(Instruction) - Method in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      writeln(String) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeMethod(InstructionSet.MethodCall, ClassModel.ConstantPool.MethodEntry) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeMethod(InstructionSet.MethodCall, ClassModel.ConstantPool.MethodEntry) - Method in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      writeMethodBody(MethodModel) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      writeMethodBody(MethodModel) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writePragma(String, boolean) - Method in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      writeSequence(Instruction, Instruction) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeThisRef() - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      writeThisRef() - Method in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      writeToString(Entrypoint) - Static method in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-23.html b/com.amd.aparapi/doc/api/index-files/index-23.html deleted file mode 100644 index b0f728f8..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-23.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - -_-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      _

      -
      -
      __constant - Static variable in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      __global - Static variable in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      __local - Static variable in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-3.html b/com.amd.aparapi/doc/api/index-files/index-3.html deleted file mode 100644 index d738a38e..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-3.html +++ /dev/null @@ -1,521 +0,0 @@ - - - - - -C-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      C

      -
      -
      cast - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      checkForRecursion(Set<MethodModel>) - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      CL_KHR_3D_IMAGE_WRITES - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_BYTE_ADDRESSABLE_SUPPORT - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_FP16 - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_FP64 - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_GL_SHARING - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_GLOBAL_INT32_BASE_ATOMICS - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_GLOBAL_INT32_EXTENDED_ATOMICS - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_INT64_BASE_ATOMICS - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_INT64_EXTENDED_ATOMICS - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_LOCAL_INT32_BASE_ATOMICS - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_LOCAL_INT32_EXTENDED_ATOMICS - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      CL_KHR_SELECT_FPROUNDING_MODE - Static variable in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      ClassModel - Class in com.amd.aparapi.internal.model
      -
      -
      Class represents a ClassFile (MyClass.class).
      -
      -
      ClassModel(Class<?>) - Constructor for class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Create a ClassModel representing a given Class.
      -
      -
      ClassModel.Access - Enum in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      ClassModel.AttributePool.AttributePoolEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.AttributePoolEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry
      -
       
      -
      ClassModel.AttributePool.CodeEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.CodeEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
      -
       
      -
      ClassModel.AttributePool.ConstantValueEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.ConstantValueEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.ConstantValueEntry
      -
       
      -
      ClassModel.AttributePool.DeprecatedEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.DeprecatedEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.DeprecatedEntry
      -
       
      -
      ClassModel.AttributePool.EnclosingMethodEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.EnclosingMethodEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.EnclosingMethodEntry
      -
       
      -
      ClassModel.AttributePool.ExceptionEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.ExceptionEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.ExceptionEntry
      -
       
      -
      ClassModel.AttributePool.InnerClassesEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.InnerClassesEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry
      -
       
      -
      ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
      -
       
      -
      ClassModel.AttributePool.LineNumberTableEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.LineNumberTableEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry
      -
       
      -
      ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair
      -
       
      -
      ClassModel.AttributePool.LocalVariableTableEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.LocalVariableTableEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry
      -
       
      -
      ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      ClassModel.AttributePool.OtherEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.OtherEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.OtherEntry
      -
       
      -
      ClassModel.AttributePool.PoolEntry<T> - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.PoolEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.PoolEntry
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.AnnotationValue - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ArrayValue - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.ClassValue - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.EnumValue - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue(int, ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue
      -
       
      -
      ClassModel.AttributePool.SignatureEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.SignatureEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.SignatureEntry
      -
       
      -
      ClassModel.AttributePool.SourceFileEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.SourceFileEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.SourceFileEntry
      -
       
      -
      ClassModel.AttributePool.SyntheticEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.AttributePool.SyntheticEntry(ByteReader, int, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.AttributePool.SyntheticEntry
      -
       
      -
      ClassModel.ClassModelField - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ClassModelField(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      ClassModel.ClassModelInterface - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ClassModelMethod - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ClassModelMethod(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      ClassModel.ConstantPool - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool(ByteReader) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      ClassModel.ConstantPool.ClassEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.ClassEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ClassEntry
      -
       
      -
      ClassModel.ConstantPool.DoubleEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.DoubleEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.DoubleEntry
      -
       
      -
      ClassModel.ConstantPool.EmptyEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.EmptyEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.EmptyEntry
      -
       
      -
      ClassModel.ConstantPool.Entry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.Entry(ByteReader, int, ClassModel.ConstantPoolType) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry
      -
       
      -
      ClassModel.ConstantPool.FieldEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.FieldEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.FieldEntry
      -
       
      -
      ClassModel.ConstantPool.FloatEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.FloatEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.FloatEntry
      -
       
      -
      ClassModel.ConstantPool.IntegerEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.IntegerEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.IntegerEntry
      -
       
      -
      ClassModel.ConstantPool.InterfaceMethodEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.LongEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.LongEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.LongEntry
      -
       
      -
      ClassModel.ConstantPool.MethodEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.MethodEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodEntry
      -
       
      -
      ClassModel.ConstantPool.MethodReferenceEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.MethodReferenceEntry(ByteReader, int, ClassModel.ConstantPoolType) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      ClassModel.ConstantPool.MethodReferenceEntry.Arg - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.NameAndTypeEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.NameAndTypeEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry
      -
       
      -
      ClassModel.ConstantPool.ReferenceEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.ReferenceEntry(ByteReader, int, ClassModel.ConstantPoolType) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry
      -
       
      -
      ClassModel.ConstantPool.ReferenceEntry.Type - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.ReferenceEntry.Type(String) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type
      -
       
      -
      ClassModel.ConstantPool.StringEntry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.StringEntry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.StringEntry
      -
       
      -
      ClassModel.ConstantPool.UTF8Entry - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.ConstantPool.UTF8Entry(ByteReader, int) - Constructor for class com.amd.aparapi.internal.model.ClassModel.ConstantPool.UTF8Entry
      -
       
      -
      ClassModel.ConstantPoolType - Enum in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.MethodDescription - Class in com.amd.aparapi.internal.model
      -
       
      -
      ClassModel.MethodDescription(String, String, String, String[]) - Constructor for class com.amd.aparapi.internal.model.ClassModel.MethodDescription
      -
       
      -
      ClassParseException - Exception in com.amd.aparapi.internal.exception
      -
      -
      We throw ClassParseExceptions (derived from AparapiException) if we encounter any Aparapi unfriendly - constructs.
      -
      -
      ClassParseException(ClassParseException.TYPE) - Constructor for exception com.amd.aparapi.internal.exception.ClassParseException
      -
       
      -
      ClassParseException(Instruction, ClassParseException.TYPE) - Constructor for exception com.amd.aparapi.internal.exception.ClassParseException
      -
       
      -
      ClassParseException(ClassParseException.TYPE, String) - Constructor for exception com.amd.aparapi.internal.exception.ClassParseException
      -
       
      -
      ClassParseException(Throwable) - Constructor for exception com.amd.aparapi.internal.exception.ClassParseException
      -
       
      -
      ClassParseException.TYPE - Enum in com.amd.aparapi.internal.exception
      -
       
      -
      clear() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      clone() - Method in class com.amd.aparapi.Kernel
      -
      -
      When using a Java Thread Pool Aparapi uses clone to copy the initial instance to each thread.
      -
      -
      CodeGenException - Exception in com.amd.aparapi.internal.exception
      -
       
      -
      CodeGenException(String) - Constructor for exception com.amd.aparapi.internal.exception.CodeGenException
      -
       
      -
      CodeGenException(Throwable) - Constructor for exception com.amd.aparapi.internal.exception.CodeGenException
      -
       
      -
      collapseAll - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      collapsedBranchTarget - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.InstructionView
      -
       
      -
      com.amd.aparapi - package com.amd.aparapi
      -
       
      -
      com.amd.aparapi.annotation - package com.amd.aparapi.annotation
      -
       
      -
      com.amd.aparapi.device - package com.amd.aparapi.device
      -
       
      -
      com.amd.aparapi.exception - package com.amd.aparapi.exception
      -
       
      -
      com.amd.aparapi.internal.annotation - package com.amd.aparapi.internal.annotation
      -
       
      -
      com.amd.aparapi.internal.exception - package com.amd.aparapi.internal.exception
      -
       
      -
      com.amd.aparapi.internal.instruction - package com.amd.aparapi.internal.instruction
      -
       
      -
      com.amd.aparapi.internal.jni - package com.amd.aparapi.internal.jni
      -
       
      -
      com.amd.aparapi.internal.kernel - package com.amd.aparapi.internal.kernel
      -
       
      -
      com.amd.aparapi.internal.model - package com.amd.aparapi.internal.model
      -
       
      -
      com.amd.aparapi.internal.opencl - package com.amd.aparapi.internal.opencl
      -
       
      -
      com.amd.aparapi.internal.reader - package com.amd.aparapi.internal.reader
      -
       
      -
      com.amd.aparapi.internal.tool - package com.amd.aparapi.internal.tool
      -
       
      -
      com.amd.aparapi.internal.util - package com.amd.aparapi.internal.util
      -
       
      -
      com.amd.aparapi.internal.writer - package com.amd.aparapi.internal.writer
      -
       
      -
      com.amd.aparapi.opencl - package com.amd.aparapi.opencl
      -
       
      -
      compareTo(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      CONDITIONAL_START - Static variable in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      Config - Class in com.amd.aparapi
      -
      -
      A central location for holding all runtime configurable properties as well as logging configuration.
      -
      -
      Config() - Constructor for class com.amd.aparapi.Config
      -
       
      -
      config - Variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      Config.InstructionListener - Interface in com.amd.aparapi
      -
       
      -
      ConfigJNI - Class in com.amd.aparapi.internal.jni
      -
      -
      This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI
      -
      -
      ConfigJNI() - Constructor for class com.amd.aparapi.internal.jni.ConfigJNI
      -
       
      -
      constant - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      CONSTANT_ANNOTATION_NAME - Static variable in class com.amd.aparapi.internal.writer.KernelWriter
      -
       
      -
      CONSTANT_SUFFIX - Static variable in class com.amd.aparapi.Kernel
      -
      -
      We can use this suffix to 'tag' intended constant buffers.
      -
      -
      consumesStack() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      convert(int) - Method in enum com.amd.aparapi.internal.model.ClassModel.Access
      -
       
      -
      convert(String) - Static method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      convert(String, String) - Static method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      convert(String, String, boolean) - Static method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      convertCast(String) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      convertType(String, boolean) - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      convertType(String, boolean) - Method in class com.amd.aparapi.internal.writer.KernelWriter
      -
      -
      These three convert functions are here to perform - any type conversion that may be required between - Java and OpenCL.
      -
      -
      create(MethodModel, ByteReader) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      create(InstructionSet.ByteCode, MethodModel, Instruction, Instruction, BranchSet) - Static method in class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction
      -
       
      -
      create(Device, int, int) - Static method in class com.amd.aparapi.Range
      -
      -
      Create a one dimensional range 0.._globalWidth which is processed in groups of size _localWidth.
      -
      -
      create(Device, int) - Static method in class com.amd.aparapi.Range
      -
      -
      Create a one dimensional range 0.._globalWidth with an undefined group size.
      -
      -
      create(int, int) - Static method in class com.amd.aparapi.Range
      -
       
      -
      create(int) - Static method in class com.amd.aparapi.Range
      -
       
      -
      create2D(Device, int, int, int, int) - Static method in class com.amd.aparapi.Range
      -
      -
      Create a two dimensional range 0.._globalWidth x 0.._globalHeight using a group which is _localWidth x _localHeight in size.
      -
      -
      create2D(Device, int, int) - Static method in class com.amd.aparapi.Range
      -
      -
      Create a two dimensional range 0.._globalWidth * 0.._globalHeight choosing suitable values for localWidth and localHeight.
      -
      -
      create2D(int, int, int, int) - Static method in class com.amd.aparapi.Range
      -
       
      -
      create2D(int, int) - Static method in class com.amd.aparapi.Range
      -
       
      -
      create3D(Device, int, int, int, int, int, int) - Static method in class com.amd.aparapi.Range
      -
      -
      Create a two dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - in groups defined by localWidth * localHeight * localDepth.
      -
      -
      create3D(Device, int, int, int) - Static method in class com.amd.aparapi.Range
      -
      -
      Create a three dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - choosing suitable values for localWidth, localHeight and localDepth.
      -
      -
      create3D(int, int, int) - Static method in class com.amd.aparapi.Range
      -
       
      -
      create3D(int, int, int, int, int, int) - Static method in class com.amd.aparapi.Range
      -
       
      -
      createKernel() - Method in class com.amd.aparapi.internal.opencl.OpenCLKernel
      -
       
      -
      createList(Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      [1] [2] [3] [4] - - Note that passing null here essentially deletes the existing expression list and returns the expression
      -
      -
      createListOfInstructions() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
      -
      Create a linked list of instructions (from pcHead to pcTail).
      -
      -
      createProgram(OpenCLDevice) - Method in class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
       
      -
      createRange(int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      createRange(int, int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      createRange2D(int, int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      createRange2D(int, int, int, int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      createRange3D(int, int, int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      createRange3D(int, int, int, int, int, int) - Method in class com.amd.aparapi.device.Device
      -
       
      -
      CURVEBOW - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-4.html b/com.amd.aparapi/doc/api/index-files/index-4.html deleted file mode 100644 index 95172b73..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-4.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - -D-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      D

      -
      -
      d8() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      data(Object...) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table
      -
       
      -
      deoptimizeReverseBranches() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
      -
      Javac optimizes some branches to avoid goto->goto, branch->goto etc.
      -
      -
      DeprecatedException - Exception in com.amd.aparapi.exception
      -
       
      -
      DeprecatedException(String) - Constructor for exception com.amd.aparapi.exception.DeprecatedException
      -
       
      -
      Device - Class in com.amd.aparapi.device
      -
       
      -
      Device() - Constructor for class com.amd.aparapi.device.Device
      -
       
      -
      Device.TYPE - Enum in com.amd.aparapi.device
      -
       
      -
      dim - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.InstructionView
      -
       
      -
      dirty() - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      disableUnsafe - Static variable in class com.amd.aparapi.Config
      -
      -
      Disable Unsafe
      -
      -
      dispose() - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Kernel.dispose() delegates to KernelRunner.dispose() which delegates to disposeJNI() to actually close JNI data structures.
      -
      -
      dispose() - Method in class com.amd.aparapi.Kernel
      -
      -
      Release any resources associated with this Kernel.
      -
      -
      DocMe - Annotation Type in com.amd.aparapi.internal.annotation
      -
      -
      Use this annotation to tag stuff that needs Java Doc added
      -
      -
      doesNotContainCompositeOrBranch(Instruction, Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
       
      -
      doesNotContainContinueOrBreak(Instruction, Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      Determine whether the sequence of instructions from _start to _extent is free of branches which extend beyond _extent.
      -
      -
      doorbell - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      draw(Graphics) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      draw(Graphics2D, Shape) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      dumpDiagram(Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      Aids debugging.
      -
      -
      dumpFlags - Static variable in class com.amd.aparapi.Config
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-5.html b/com.amd.aparapi/doc/api/index-files/index-5.html deleted file mode 100644 index f586cdbb..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-5.html +++ /dev/null @@ -1,246 +0,0 @@ - - - - - -E-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      E

      -
      -
      edge(Graphics2D, Color, InstructionViewer.InstructionView, InstructionViewer.InstructionView, String, String) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      edgeCurve - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      edgeFan - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      EDGEGAP - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      enableARETURN - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableARRAYLENGTH - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableATHROW - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableAtomic32 - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableAtomic64 - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableByteWrites - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableDoubles - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableExecutionModeReporting - Static variable in class com.amd.aparapi.Config
      -
      -
      Allows the user to request that the execution mode of each kernel invocation be reported to stdout.
      -
      -
      enableGETSTATIC - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableInstructionDecodeViewer - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableINVOKEINTERFACE - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableMETHODARRAYPASSING - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableMONITOR - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableNEW - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableProfiling - Static variable in class com.amd.aparapi.internal.jni.ConfigJNI
      -
      -
      Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer.
      -
      -
      enableProfilingCSV - Static variable in class com.amd.aparapi.internal.jni.ConfigJNI
      -
      -
      Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer, this information will be written to CSV file - - Usage -Dcom.amd.aparapi.enableProfiling={true|false}
      -
      -
      enablePUTFIELD - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enablePUTSTATIC - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableShowFakeLocalVariableTable - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableShowGeneratedOpenCL - Static variable in class com.amd.aparapi.Config
      -
      -
      Allows the user to request that generated OpenCL code is dumped to standard out.
      -
      -
      enableSWITCH - Static variable in class com.amd.aparapi.Config
      -
       
      -
      enableVerboseJNI - Static variable in class com.amd.aparapi.internal.jni.ConfigJNI
      -
      -
      Allows the user to request that verbose JNI messages be dumped to stderr.
      -
      -
      enableVerboseJNIOpenCLResourceTracking - Static variable in class com.amd.aparapi.internal.jni.ConfigJNI
      -
      -
      Allows the user to request tracking of opencl resources.
      -
      -
      end() - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      end() - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      Entrypoint - Class in com.amd.aparapi.internal.model
      -
       
      -
      Entrypoint(ClassModel, MethodModel, Object) - Constructor for class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      equals(Object) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      equals(Object) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      execute(Kernel.Entry, Range, int) - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
       
      -
      execute(String, Range, int) - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
       
      -
      execute(Range) - Method in class com.amd.aparapi.Kernel.Entry
      -
       
      -
      execute(Range) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of _range kernels.
      -
      -
      execute(int) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of _range kernels.
      -
      -
      execute(Range, int) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of _passes iterations of _range kernels.
      -
      -
      execute(int, int) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of _passes iterations over the _range of kernels.
      -
      -
      execute(Kernel.Entry, Range) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of globalSize kernels for the given entrypoint.
      -
      -
      execute(String, Range) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of globalSize kernels for the given entrypoint.
      -
      -
      execute(String, Range, int) - Method in class com.amd.aparapi.Kernel
      -
      -
      Start execution of globalSize kernels for the given entrypoint.
      -
      -
      executionMode - Static variable in class com.amd.aparapi.Config
      -
      -
      Allows the user to request a specific Kernel.EXECUTION_MODE enum value for all Kernels.
      -
      -
      Experimental - Annotation Type in com.amd.aparapi.annotation
      -
      -
      Used to tag experimental features (methods/fields)
      -
      -
      ExpressionList - Class in com.amd.aparapi.internal.instruction
      -
      -
      Essentially a glorified linked list of Instructions plus some additional state to allow us to transform sequences.
      -
      -
      ExpressionList(MethodModel) - Constructor for class com.amd.aparapi.internal.instruction.ExpressionList
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-6.html b/com.amd.aparapi/doc/api/index-files/index-6.html deleted file mode 100644 index 10cd37d7..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-6.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - -F-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      F

      -
      -
      f4() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      FALSE - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch
      -
       
      -
      fieldArrayElementAccess - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      fieldArrayElementMinusOne - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      fieldArrayElementPlusOne - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      fieldMinusOne - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      fieldPlusOne - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      fill(Graphics2D, Color, Shape) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      fill(Graphics2D, Shape) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      fillStroke(Graphics2D, Color, Color, Stroke, Shape) - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      findEndOfConditionalBranchSet(Instruction) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch
      -
       
      -
      first(Device.TYPE) - Static method in class com.amd.aparapi.device.Device
      -
       
      -
      firstCPU() - Static method in class com.amd.aparapi.device.Device
      -
       
      -
      firstGPU() - Static method in class com.amd.aparapi.device.Device
      -
       
      -
      fold - Variable in class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      foldComposite(Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      Fold headTail.tail into valid composites
      -
      -
      format(Object...) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-7.html b/com.amd.aparapi/doc/api/index-files/index-7.html deleted file mode 100644 index 5f897bcf..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-7.html +++ /dev/null @@ -1,1448 +0,0 @@ - - - - - -G-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      G

      -
      -
      get(int) - Static method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      get(Object) - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Enqueue a request to return this array from the GPU.
      -
      -
      get(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      get(int) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      get(long[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(double[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(float[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(int[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(byte[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(char[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(boolean[]) - Method in class com.amd.aparapi.Kernel
      -
      -
      Enqueue a request to return this buffer from the GPU.
      -
      -
      get(float[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(int[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(short[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(char[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(boolean[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(double[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(byte[]) - Method in interface com.amd.aparapi.opencl.OpenCL
      -
       
      -
      get(byte[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      get(float[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      get(int[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      get(short[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      get(char[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      get(boolean[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      get(double[]) - Method in class com.amd.aparapi.opencl.OpenCLAdapter
      -
       
      -
      getAbsolute() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      getAbsolute(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      getAccessFlags() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getAccessFlags() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getAccessFlags() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getAccessorVariableFieldEntry() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getAccumulatedExecutionTime() - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Determine the accumulated execution time of all previous Kernel.execute(range) calls.
      -
      -
      getAccumulatedExecutionTime() - Method in class com.amd.aparapi.Kernel
      -
      -
      Determine the total execution time of all previous Kernel.execute(range) calls.
      -
      -
      getAdjust() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      getArg(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getArg(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getArg(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getArg(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      getArg(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getArg(int) - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor
      -
       
      -
      getArg(int) - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.MethodCall
      -
       
      -
      getArgs(Method) - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getArgs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getArgs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getArgs() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor
      -
       
      -
      getArgs() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      getArgs() - Method in class com.amd.aparapi.internal.model.ClassModel.MethodDescription
      -
       
      -
      getArrayDimensions() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type
      -
       
      -
      getArrayFieldAccesses() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getArrayFieldArrayLengthUsed() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getArrayFieldAssignments() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getArrayIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ArrayAccess
      -
       
      -
      getArrayRef() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ArrayAccess
      -
       
      -
      getAssignToArrayElement() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign
      -
       
      -
      getAssignToArrayElement() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement
      -
       
      -
      getAssignToLocalVariable() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction
      -
       
      -
      getAttributePool() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry
      -
       
      -
      getAttributePool() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      getAttributePool() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getAttributePool() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getAttributePool() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getBoolean(Object, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      getBranch() - Method in class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      -
       
      -
      getBranches() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      getBranchSet() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction
      -
       
      -
      getBranchSet() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch
      -
       
      -
      getByte(Object, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      getByteCode() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getBytes() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.OtherEntry
      -
       
      -
      getCalledMethods() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getCalledMethods() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getCallTarget(ClassModel.ConstantPool.MethodEntry, boolean) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getClassEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
      -
       
      -
      getClassEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getClassEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry
      -
       
      -
      getClassIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
      -
       
      -
      getClassIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.EnclosingMethodEntry
      -
       
      -
      getClassIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry
      -
       
      -
      getClassModel() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getClassModel() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getClassName() - Method in class com.amd.aparapi.internal.model.ClassModel.MethodDescription
      -
       
      -
      getClassWeAreModelling() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getCode() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      getCode() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      getCode() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getCodeEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getCodeEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getCommon() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction
      -
       
      -
      getCompliment() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
       
      -
      getConstantEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getConstantPool() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getConstantPool() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getConstantPool() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getConstantPoolEntry() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.ConstantPoolEntryConstant
      -
       
      -
      getConstantPoolEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC
      -
       
      -
      getConstantPoolEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W
      -
       
      -
      getConstantPoolEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W
      -
       
      -
      getConstantPoolFieldEntry() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.FieldReference
      -
       
      -
      getConstantPoolFieldEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      getConstantPoolFieldEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      -
       
      -
      getConstantPoolFieldEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getConstantPoolFieldEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      getConstantPoolFieldIndex() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.FieldReference
      -
       
      -
      getConstantPoolFieldIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      getConstantPoolFieldIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      -
       
      -
      getConstantPoolFieldIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getConstantPoolFieldIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      getConstantPoolIndex() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.ConstantPoolEntryConstant
      -
       
      -
      getConstantPoolIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC
      -
       
      -
      getConstantPoolIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W
      -
       
      -
      getConstantPoolIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W
      -
       
      -
      getConstantPoolInterfaceMethodEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getConstantPoolInterfaceMethodEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getConstantPoolInterfaceMethodEntry() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor
      -
       
      -
      getConstantPoolInterfaceMethodIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getConstantPoolInterfaceMethodIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getConstantPoolInterfaceMethodIndex() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor
      -
       
      -
      getConstantPoolMethodEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getConstantPoolMethodEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      getConstantPoolMethodEntry() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getConstantPoolMethodEntry() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.MethodCall
      -
       
      -
      getConstantPoolMethodIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getConstantPoolMethodIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      getConstantPoolMethodIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getConstantPoolMethodIndex() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.MethodCall
      -
       
      -
      getConstantPoolReferences(ClassModel.ConstantPool.Entry) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getConstantPoolType() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry
      -
       
      -
      getConstNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue
      -
       
      -
      getContainer() - Method in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      getConversionTime() - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call.
      -
      -
      getConversionTime() - Method in class com.amd.aparapi.Kernel
      -
      -
      Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call.
      -
      -
      getDeclaringClass() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getDelta() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      getDeprecatedEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getDescription() - Method in enum com.amd.aparapi.internal.exception.ClassParseException.TYPE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatcher
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FakeGoto
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_AALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_AASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ANEWARRAY
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ARETURN
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ARRAYLENGTH
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ATHROW
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_BALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_BASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_BIPUSH
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_CALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_CASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_CHECKCAST
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_D2F
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_D2I
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_D2L
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DADD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPG
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_0
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DDIV
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DMUL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DNEG
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DREM
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DRETURN
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DSUB
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X2
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X2
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_END
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_F2D
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_F2I
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_F2L
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FADD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPG
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_0
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_2
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FDIV
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FMUL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FNEG
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FREM
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FRETURN
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_FSUB
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO_W
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_I2B
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_I2C
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_I2D
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_I2F
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_I2L
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_I2S
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IADD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IAND
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_0
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_2
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_3
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_4
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_5
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_M1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IDIV
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPEQ
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPNE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPEQ
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGT
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLT
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPNE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFEQ
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFGE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFGT
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFLE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFLT
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNONNULL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNULL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IMUL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INEG
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INSTANCEOF
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IOR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IREM
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IRETURN
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ISHL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ISHR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ISUB
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IUSHR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IXOR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_JSR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_JSR_W
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_L2D
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_L2F
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_L2I
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LADD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LAND
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LCMP
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_0
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_1
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDIV
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LMUL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LNEG
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LOR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LREM
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LRETURN
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LSHL
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LSHR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LSUB
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LUSHR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LXOR
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_MONITORENTER
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_MONITOREXIT
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_MULTIANEWARRAY
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_NEW
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_NEWARRAY
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_NOP
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_POP
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_POP2
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_RET
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_RETURN
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_SALOAD
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_SASTORE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_SIPUSH
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_SWAP
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexLoad
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexStore
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Load
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Store
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction
      -
       
      -
      getDescription() - Method in class com.amd.aparapi.internal.instruction.InstructionTransformer
      -
       
      -
      getDescription(ClassModel.ConstantPool.Entry) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getDescriptor() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getDescriptor() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getDescriptorIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getDescriptorIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getDescriptorIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getDescriptorIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry
      -
       
      -
      getDescriptorUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getDescriptorUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getDescriptorUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry
      -
       
      -
      getDevice() - Method in class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
       
      -
      getDevice() - Method in class com.amd.aparapi.Range
      -
       
      -
      getDeviceId() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getDimensions() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_MULTIANEWARRAY
      -
       
      -
      getDims() - Method in class com.amd.aparapi.Range
      -
      -
      Get the number of dims for this Range.
      -
      -
      getDoubleEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getDoubleValue() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.DoubleEntry
      -
       
      -
      getEnd() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
      -
       
      -
      getEnd() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getEnd() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      getEnd() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      getEndPC() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      getEntrypoint(String, Object) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getEntrypoint() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getExceptionEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getExceptionPoolEntries() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      getExecutionMode() - Method in class com.amd.aparapi.Kernel
      -
      -
      Return the current execution mode.
      -
      -
      getExecutionTime() - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
      -
      Determine the execution time of the previous Kernel.execute(range) call.
      -
      -
      getExecutionTime() - Method in class com.amd.aparapi.Kernel
      -
      -
      Determine the execution time of the previous Kernel.execute(range) call.
      -
      -
      getExprHead() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getFallThrough() - Method in class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      getFallThrough() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      getFallThrough() - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      getFallThrough() - Method in class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      -
       
      -
      getField(String, String) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getField(String) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getFieldEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getFieldFromClassHierarchy(Class<?>, String) - Static method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getFieldOrVariableReference() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      -
       
      -
      getFieldPoolEntries() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getFirst() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      getFirstChild() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getFloat(Object, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      getFloatEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getFloatValue() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.FloatEntry
      -
       
      -
      getForwardConditionalBranches() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getForwardUnconditionalBranches() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getFrom() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction
      -
       
      -
      getFrom() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      getGlobalIds() - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      getGlobalMemSize() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getGlobalSize(int) - Method in class com.amd.aparapi.Range
      -
      -
      Get the globalSize (of the range) given the requested dimension
      -
      -
      getGlobalSize_0() - Method in class com.amd.aparapi.Range
      -
       
      -
      getGlobalSize_1() - Method in class com.amd.aparapi.Range
      -
       
      -
      getGlobalSize_2() - Method in class com.amd.aparapi.Range
      -
       
      -
      getGroupIds() - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      getHandler() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
      -
       
      -
      getHead() - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
       
      -
      getHigh() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH
      -
       
      -
      getImmediate() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      getIncrement() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      -
       
      -
      getIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      -
       
      -
      getIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.ConstantValueEntry
      -
       
      -
      getIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getInnerAccess() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
      -
       
      -
      getInnerIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
      -
       
      -
      getInnerNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
      -
       
      -
      getInstance() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.AccessInstanceField
      -
       
      -
      getInstance() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.AssignToInstanceField
      -
       
      -
      getInstance() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      getInstance() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getInstanceReference() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getInstanceReference() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getInstanceReference() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getInstanceReference() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getInstanceReference() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.InterfaceConstantPoolMethodIndexAccessor
      -
       
      -
      getInstanceReference() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.VirtualMethodCall
      -
       
      -
      getInstruction() - Method in exception com.amd.aparapi.internal.exception.ClassParseException
      -
       
      -
      getInt(Object, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      getIntegerEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getInterfaceMethodEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getIntValue() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.IntegerEntry
      -
       
      -
      getKernelInstance() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getKernelState() - Method in class com.amd.aparapi.Kernel
      -
       
      -
      getLabel(Instruction, boolean, boolean, boolean) - Static method in class com.amd.aparapi.internal.tool.InstructionHelper
      -
       
      -
      getLabel() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      getLast() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      getLastChild() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getLength() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getLength() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry
      -
       
      -
      getLength() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getLhs() - Method in class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      getLhs() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.Binary
      -
       
      -
      getLhs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.BinaryOperator
      -
       
      -
      getLhs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.If
      -
       
      -
      getLineNumber() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair
      -
       
      -
      getLineNumberTableEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      getLineNumberTableEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getLineNumberTableEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getLocalBarrier() - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      getLocalIds() - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      getLocalMemSize() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getLocalSize(int) - Method in class com.amd.aparapi.Range
      -
      -
      Get the localSize (of the group) given the requested dimension
      -
      -
      getLocalSize_0() - Method in class com.amd.aparapi.Range
      -
       
      -
      getLocalSize_1() - Method in class com.amd.aparapi.Range
      -
       
      -
      getLocalSize_2() - Method in class com.amd.aparapi.Range
      -
       
      -
      getLocalVariable(int, int) - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getLocalVariable(int, int) - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getLocalVariableInfo() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      getLocalVariableInfo() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_RET
      -
       
      -
      getLocalVariableInfo() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexAccessor
      -
       
      -
      getLocalVariableInfo() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Accessor
      -
       
      -
      getLocalVariableInfo() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableTableIndexAccessor
      -
       
      -
      getLocalVariableTableEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getLocalVariableTableEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getLocalVariableTableEntry() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getLocalVariableTableIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      getLocalVariableTableIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_RET
      -
       
      -
      getLocalVariableTableIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexAccessor
      -
       
      -
      getLocalVariableTableIndex() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Accessor
      -
       
      -
      getLocalVariableTableIndex() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableTableIndexAccessor
      -
       
      -
      getLoggerName() - Static method in class com.amd.aparapi.Config
      -
       
      -
      getLogicalExpression() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      getLong(Object, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      getLongEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getLongName() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec
      -
       
      -
      getLongValue() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.LongEntry
      -
       
      -
      getLow() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH
      -
       
      -
      getMagic() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getMajorVersion() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getMappedMethodName(ClassModel.ConstantPool.MethodReferenceEntry) - Static method in class com.amd.aparapi.Kernel
      -
       
      -
      getMatches() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH
      -
       
      -
      getMaxComputeUnits() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getMaxLocals() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      getMaxMemAllocSize() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getMaxStack() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry
      -
       
      -
      getMaxWorkGroupSize() - Method in class com.amd.aparapi.device.Device
      -
       
      -
      getMaxWorkGroupSize() - Method in class com.amd.aparapi.Range
      -
       
      -
      getMaxWorkItemDimensions() - Method in class com.amd.aparapi.device.Device
      -
       
      -
      getMaxWorkItemSize() - Method in class com.amd.aparapi.device.Device
      -
       
      -
      getMaxWorkItemSize() - Method in class com.amd.aparapi.Range
      -
       
      -
      getMem(Object, long) - Method in class com.amd.aparapi.internal.opencl.OpenCLProgram
      -
       
      -
      getMethod() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getMethod(String, String) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getMethod(ClassModel.ConstantPool.MethodEntry, boolean) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Look up a ConstantPool MethodEntry and return the corresponding Method.
      -
      -
      getMethod() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getMethodCalls() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getMethodDescription(String) - Static method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getMethodEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getMethodIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.EnclosingMethodEntry
      -
       
      -
      getMethodModel(String, String) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Create a MethodModel for a given method name and signature.
      -
      -
      getMethodModel() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getMethodName() - Method in class com.amd.aparapi.internal.model.ClassModel.MethodDescription
      -
       
      -
      getMinorVersion() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getName() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      getName() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ImmediateSpec
      -
       
      -
      getName() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry
      -
       
      -
      getName() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getName() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getName() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getName() - Method in class com.amd.aparapi.internal.opencl.OpenCLKernel
      -
       
      -
      getName() - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      getNameAndTypeEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getNameAndTypeEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry
      -
       
      -
      getNameAndTypeIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry
      -
       
      -
      getNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.AttributePoolEntry
      -
       
      -
      getNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ClassEntry
      -
       
      -
      getNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry
      -
       
      -
      getNameUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelField
      -
       
      -
      getNameUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      getNameUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ClassEntry
      -
       
      -
      getNameUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.NameAndTypeEntry
      -
       
      -
      getNext() - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      getNextExpr() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getNextPC() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getNpairs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH
      -
       
      -
      getNumGroups(int) - Method in class com.amd.aparapi.Range
      -
      -
      Get the number of groups for the given dimension.
      -
      -
      getObject(Object, long) - Static method in class com.amd.aparapi.internal.util.UnsafeWrapper
      -
       
      -
      getObjectArrayFieldsClasses() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getOffset(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      getOffset() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      getOffsets() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      getOpenCLDevices() - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      getOpenCLPlatform() - Method in class com.amd.aparapi.device.OpenCLDevice
      -
       
      -
      getOpenCLPlatforms() - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      getOpenCLPlatforms() - Static method in class com.amd.aparapi.internal.util.OpenCLUtil
      -
      -
      Retrieve a list of available OpenCL Platforms
      -
      -
      getOperator() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      getOperator() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch16
      -
       
      -
      getOperator() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.HasOperator
      -
       
      -
      getOperator() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.OperatorInstruction
      -
       
      -
      getOrCreateBranchSet() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch
      -
       
      -
      getOrUpdateAllClassAccesses(String) - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getOuterIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.InnerClassesEntry.InnerClassInfo
      -
       
      -
      getPanel() - Method in class com.amd.aparapi.internal.tool.InstructionViewer.Form
      -
       
      -
      getParent() - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      getParentExpr() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getPassId() - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      getPCHead() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getPool() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.PoolEntry
      -
       
      -
      getPop() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      getPrevExpr() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getPrevPC() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getProfileInfo() - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
       
      -
      getProfileInfo() - Method in class com.amd.aparapi.Kernel
      -
      -
      Get the profiling information from the last successful call to Kernel.execute().
      -
      -
      getPush() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ByteCode
      -
       
      -
      getQueued() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      getRange() - Method in class com.amd.aparapi.Kernel.KernelState
      -
       
      -
      getReal() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getReal() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction
      -
       
      -
      getReferencedClassModelFields() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getReferencedFieldNames() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getReferencedFields() - Method in class com.amd.aparapi.internal.model.Entrypoint
      -
       
      -
      getReturnType() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      getReturnType() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getReverseConditionalBranches() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getReverseUnconditionalBranches() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getRhs() - Method in class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      getRhs() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.Binary
      -
       
      -
      getRhs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.BinaryOperator
      -
       
      -
      getRhs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign
      -
       
      -
      getRhs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.If
      -
       
      -
      getRhs() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction
      -
       
      -
      getRoot() - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      getRootExpr() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getRuntimeInvisibleAnnotationsEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getRuntimeVisibleAnnotationsEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getShortName() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec
      -
       
      -
      getSimpleName() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      getSize() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      getSize() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec
      -
       
      -
      getSlot() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry
      -
       
      -
      getSlots() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec
      -
       
      -
      getSourceFileEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getSourceFileIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.SourceFileEntry
      -
       
      -
      getSourceFileName() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.SourceFileEntry
      -
       
      -
      getSourceLineNumber(int, boolean) - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry
      -
       
      -
      getStackAdjust() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.PopSpec
      -
       
      -
      getStackAdjust() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.PushSpec
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      getStackConsumeCount() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      getStackDelta() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      getStackProduceCount() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      getStart() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.CodeEntry.ExceptionPoolEntry
      -
       
      -
      getStart() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LineNumberTableEntry.StartLineNumberPair
      -
       
      -
      getStart() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getStart() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      getStart() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      getStartInstruction() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getStartInstruction() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      -
       
      -
      getStartPC() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getStartPC() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction
      -
       
      -
      getStartPC() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      getStringEntry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getStringUTF8Entry() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.StringEntry
      -
       
      -
      getStructMemberOffsets() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getStructMembers() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getStructMemberTypes() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getSubmit() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      getSuperClassConstantPoolIndex() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getSuperClazz() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Getter for superClazz
      -
      -
      getSyntheticEntry() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool
      -
       
      -
      getTail() - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
       
      -
      getTarget() - Method in class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      getTarget() - Method in class com.amd.aparapi.internal.instruction.BranchSet
      -
       
      -
      getTarget() - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      getTarget() - Method in class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      -
       
      -
      getTarget() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      getTarget(int) - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      getText() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
       
      -
      getText(boolean) - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
       
      -
      getThisClassConstantPoolIndex() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getThisPC() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      getThisPC() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction
      -
       
      -
      getTo() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction
      -
       
      -
      getTo() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      getTotalStructSize() - Method in class com.amd.aparapi.internal.model.ClassModel
      -
       
      -
      getType() - Method in class com.amd.aparapi.device.Device
      -
       
      -
      getType() - Method in exception com.amd.aparapi.internal.exception.ClassParseException
      -
       
      -
      getType() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_NEWARRAY
      -
       
      -
      getType(ClassModel.ConstantPool.Entry) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getType() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type
      -
       
      -
      getType() - Method in class com.amd.aparapi.internal.model.ClassModel.MethodDescription
      -
       
      -
      getType() - Method in class com.amd.aparapi.ProfileInfo
      -
       
      -
      getTypeDescriptor() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo
      -
       
      -
      getTypeIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo
      -
       
      -
      getTypeNameIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.AnnotationInfo.ElementValuePair.PrimitiveValue
      -
       
      -
      getTypes() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.ImmediateSpec
      -
       
      -
      getUnary() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.IfUnary
      -
       
      -
      getUnary() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.Unary
      -
       
      -
      getUnary() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.UnaryOperator
      -
       
      -
      getUTF8() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.UTF8Entry
      -
       
      -
      getUTF8Entry(int) - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      getUTF8Index() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.StringEntry
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.AssignToArrayElement
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.BytecodeEncodedConstant
      -
       
      -
      getValue() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.Constant
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_BIPUSH
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W
      -
       
      -
      getValue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.ImmediateConstant
      -
       
      -
      getValueToAssign() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.AssignToField
      -
       
      -
      getValueToAssign() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      getValueToAssign() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      getVariable(int, int) - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry
      -
       
      -
      getVariableDescriptor() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getVariableIndex() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getVariableName(int, int) - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry
      -
       
      -
      getVariableName() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.LocalVariableTableEntry.LocalVariableInfo
      -
       
      -
      getVendor() - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      getVersion() - Method in class com.amd.aparapi.internal.opencl.OpenCLPlatform
      -
       
      -
      getWideopcode() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      -
       
      -
      getWorkGroupSize() - Method in class com.amd.aparapi.Range
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-8.html b/com.amd.aparapi/doc/api/index-files/index-8.html deleted file mode 100644 index 7cdc3faa..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-8.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - -H-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      H

      -
      -
      hashCode() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry
      -
       
      -
      hashCode() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      hasMore() - Method in class com.amd.aparapi.internal.reader.ByteReader
      -
       
      -
      hasNextExecutionMode() - Method in class com.amd.aparapi.Kernel
      -
       
      -
      header(String) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      header(String...) - Method in class com.amd.aparapi.internal.tool.InstructionHelper.Table
      -
       
      -
      HGAP - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      HGAPROOT - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      HMARGIN - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index-files/index-9.html b/com.amd.aparapi/doc/api/index-files/index-9.html deleted file mode 100644 index 46a1887d..00000000 --- a/com.amd.aparapi/doc/api/index-files/index-9.html +++ /dev/null @@ -1,1380 +0,0 @@ - - - - - -I-Index - - - - - - - -
      - - - - - -
      - - -
      A B C D E F G H I J K L M N O P R S T U V W _  - - -

      I

      -
      -
      iadd - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      in() - Method in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      inc - Static variable in class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      indent - Variable in class com.amd.aparapi.internal.writer.BlockWriter
      -
       
      -
      insertBetween(Instruction, Instruction, Instruction) - Method in class com.amd.aparapi.internal.instruction.ExpressionList
      -
      -
      Insert the given instruction (_newone) between the existing entries (_prev and _next).
      -
      -
      INSET - Static variable in class com.amd.aparapi.internal.tool.InstructionViewer.Form
      -
       
      -
      Instruction - Class in com.amd.aparapi.internal.instruction
      -
      -
      Initially represents a single Java bytecode instruction.
      -
      -
      InstructionHelper - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionHelper() - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper
      -
       
      -
      InstructionHelper.BranchVector - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionHelper.BranchVector(Instruction, Instruction) - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      InstructionHelper.StringWriter - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionHelper.StringWriter(StringBuilder) - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      InstructionHelper.StringWriter() - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper.StringWriter
      -
       
      -
      InstructionHelper.Table - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionHelper.Table(String...) - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper.Table
      -
       
      -
      InstructionHelper.Table.Col - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionHelper.Table.Col(String) - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      InstructionHelper.Table.Col() - Constructor for class com.amd.aparapi.internal.tool.InstructionHelper.Table.Col
      -
       
      -
      instructionListener - Static variable in class com.amd.aparapi.Config
      -
       
      -
      instructionListenerClassName - Static variable in class com.amd.aparapi.Config
      -
       
      -
      InstructionPattern - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionPattern() - Constructor for class com.amd.aparapi.internal.instruction.InstructionPattern
      -
       
      -
      InstructionPattern.AssignableInstructionMatcher - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionPattern.AssignableInstructionMatcher(Class<?>...) - Constructor for class com.amd.aparapi.internal.instruction.InstructionPattern.AssignableInstructionMatcher
      -
       
      -
      InstructionPattern.InstructionMatch - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionPattern.InstructionMatch(boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatch
      -
       
      -
      InstructionPattern.InstructionMatcher - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionPattern.InstructionMatcher(String) - Constructor for class com.amd.aparapi.internal.instruction.InstructionPattern.InstructionMatcher
      -
       
      -
      InstructionSet - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet() - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet
      -
       
      -
      InstructionSet.AccessArrayElement - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.AccessField - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.AccessInstanceField - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.AccessLocalVariable - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.ArrayAccess - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.ArrayAccess(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.ArrayAccess
      -
       
      -
      InstructionSet.AssignToArrayElement - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.AssignToField - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.AssignToInstanceField - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.AssignToLocalVariable - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Binary - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.BinaryOperator - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Branch - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Branch(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      InstructionSet.Branch(MethodModel, InstructionSet.ByteCode, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      InstructionSet.Branch32 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Branch32(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Branch32
      -
       
      -
      InstructionSet.ByteCode - Enum in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.BytecodeEncodedConstant<T> - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.BytecodeEncodedConstant(MethodModel, InstructionSet.ByteCode, ByteReader, boolean, T) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.BytecodeEncodedConstant
      -
       
      -
      InstructionSet.CastOperator - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CloneInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CloneInstruction(MethodModel, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction
      -
       
      -
      InstructionSet.CompositeArbitraryScopeInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeEmptyLoopInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeEmptyLoopInstruction(MethodModel, Instruction, Instruction, BranchSet) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CompositeEmptyLoopInstruction
      -
       
      -
      InstructionSet.CompositeForEclipseInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeForSunInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeForSunInstruction(MethodModel, Instruction, Instruction, BranchSet) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CompositeForSunInstruction
      -
       
      -
      InstructionSet.CompositeIfElseInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeIfElseInstruction(MethodModel, Instruction, Instruction, BranchSet) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfElseInstruction
      -
       
      -
      InstructionSet.CompositeIfInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeIfInstruction(MethodModel, Instruction, Instruction, BranchSet) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CompositeIfInstruction
      -
       
      -
      InstructionSet.CompositeInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeInstruction(MethodModel, InstructionSet.ByteCode, Instruction, Instruction, BranchSet) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction
      -
       
      -
      InstructionSet.CompositeWhileInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.CompositeWhileInstruction(MethodModel, Instruction, Instruction, BranchSet) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.CompositeWhileInstruction
      -
       
      -
      InstructionSet.ConditionalBranch - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.ConditionalBranch(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch
      -
       
      -
      InstructionSet.ConditionalBranch16 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.ConditionalBranch16(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch16
      -
       
      -
      InstructionSet.Constant<T> - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.ConstantPoolEntryConstant - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.DUP - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.DUP(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.DUP
      -
       
      -
      InstructionSet.FakeGoto - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.FakeGoto(MethodModel, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.FakeGoto
      -
       
      -
      InstructionSet.FieldArrayElementAssign - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.FieldArrayElementAssign(MethodModel, InstructionSet.AssignToArrayElement, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementAssign
      -
       
      -
      InstructionSet.FieldArrayElementIncrement - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.FieldArrayElementIncrement(MethodModel, InstructionSet.AssignToArrayElement, boolean, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement
      -
       
      -
      InstructionSet.FieldReference - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.HasOperator - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_AALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_AALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_AALOAD
      -
       
      -
      InstructionSet.I_AASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_AASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_AASTORE
      -
       
      -
      InstructionSet.I_ACONST_NULL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ACONST_NULL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL
      -
       
      -
      InstructionSet.I_ALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD
      -
       
      -
      InstructionSet.I_ALOAD_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ALOAD_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_0
      -
       
      -
      InstructionSet.I_ALOAD_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ALOAD_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_1
      -
       
      -
      InstructionSet.I_ALOAD_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ALOAD_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_2
      -
       
      -
      InstructionSet.I_ALOAD_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ALOAD_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ALOAD_3
      -
       
      -
      InstructionSet.I_ANEWARRAY - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ANEWARRAY(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ANEWARRAY
      -
       
      -
      InstructionSet.I_ARETURN - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ARETURN(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ARETURN
      -
       
      -
      InstructionSet.I_ARRAYLENGTH - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ARRAYLENGTH(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ARRAYLENGTH
      -
       
      -
      InstructionSet.I_ASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE
      -
       
      -
      InstructionSet.I_ASTORE_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ASTORE_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_0
      -
       
      -
      InstructionSet.I_ASTORE_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ASTORE_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_1
      -
       
      -
      InstructionSet.I_ASTORE_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ASTORE_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_2
      -
       
      -
      InstructionSet.I_ASTORE_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ASTORE_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ASTORE_3
      -
       
      -
      InstructionSet.I_ATHROW - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ATHROW(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ATHROW
      -
       
      -
      InstructionSet.I_BALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_BALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_BALOAD
      -
       
      -
      InstructionSet.I_BASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_BASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_BASTORE
      -
       
      -
      InstructionSet.I_BIPUSH - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_BIPUSH(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_BIPUSH
      -
       
      -
      InstructionSet.I_CALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_CALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_CALOAD
      -
       
      -
      InstructionSet.I_CASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_CASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_CASTORE
      -
       
      -
      InstructionSet.I_CHECKCAST - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_CHECKCAST(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_CHECKCAST
      -
       
      -
      InstructionSet.I_D2F - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_D2F(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_D2F
      -
       
      -
      InstructionSet.I_D2I - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_D2I(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_D2I
      -
       
      -
      InstructionSet.I_D2L - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_D2L(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_D2L
      -
       
      -
      InstructionSet.I_DADD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DADD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DADD
      -
       
      -
      InstructionSet.I_DALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DALOAD
      -
       
      -
      InstructionSet.I_DASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DASTORE
      -
       
      -
      InstructionSet.I_DCMPG - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DCMPG(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPG
      -
       
      -
      InstructionSet.I_DCMPL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DCMPL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DCMPL
      -
       
      -
      InstructionSet.I_DCONST_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DCONST_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_0
      -
       
      -
      InstructionSet.I_DCONST_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DCONST_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DCONST_1
      -
       
      -
      InstructionSet.I_DDIV - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DDIV(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DDIV
      -
       
      -
      InstructionSet.I_DLOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DLOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD
      -
       
      -
      InstructionSet.I_DLOAD_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DLOAD_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_0
      -
       
      -
      InstructionSet.I_DLOAD_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DLOAD_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_1
      -
       
      -
      InstructionSet.I_DLOAD_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DLOAD_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_2
      -
       
      -
      InstructionSet.I_DLOAD_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DLOAD_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DLOAD_3
      -
       
      -
      InstructionSet.I_DMUL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DMUL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DMUL
      -
       
      -
      InstructionSet.I_DNEG - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DNEG(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DNEG
      -
       
      -
      InstructionSet.I_DREM - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DREM(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DREM
      -
       
      -
      InstructionSet.I_DRETURN - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DRETURN(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DRETURN
      -
       
      -
      InstructionSet.I_DSTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DSTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE
      -
       
      -
      InstructionSet.I_DSTORE_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DSTORE_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_0
      -
       
      -
      InstructionSet.I_DSTORE_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DSTORE_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_1
      -
       
      -
      InstructionSet.I_DSTORE_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DSTORE_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_2
      -
       
      -
      InstructionSet.I_DSTORE_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DSTORE_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DSTORE_3
      -
       
      -
      InstructionSet.I_DSUB - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DSUB(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DSUB
      -
       
      -
      InstructionSet.I_DUP - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DUP(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP
      -
       
      -
      InstructionSet.I_DUP2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DUP2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2
      -
       
      -
      InstructionSet.I_DUP2_X1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DUP2_X1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X1
      -
       
      -
      InstructionSet.I_DUP2_X2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DUP2_X2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP2_X2
      -
       
      -
      InstructionSet.I_DUP_X1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DUP_X1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X1
      -
       
      -
      InstructionSet.I_DUP_X2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_DUP_X2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_DUP_X2
      -
       
      -
      InstructionSet.I_END - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_END(MethodModel, int) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_END
      -
       
      -
      InstructionSet.I_F2D - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_F2D(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_F2D
      -
       
      -
      InstructionSet.I_F2I - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_F2I(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_F2I
      -
       
      -
      InstructionSet.I_F2L - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_F2L(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_F2L
      -
       
      -
      InstructionSet.I_FADD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FADD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FADD
      -
       
      -
      InstructionSet.I_FALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FALOAD
      -
       
      -
      InstructionSet.I_FASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FASTORE
      -
       
      -
      InstructionSet.I_FCMPG - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FCMPG(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPG
      -
       
      -
      InstructionSet.I_FCMPL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FCMPL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FCMPL
      -
       
      -
      InstructionSet.I_FCONST_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FCONST_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_0
      -
       
      -
      InstructionSet.I_FCONST_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FCONST_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_1
      -
       
      -
      InstructionSet.I_FCONST_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FCONST_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FCONST_2
      -
       
      -
      InstructionSet.I_FDIV - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FDIV(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FDIV
      -
       
      -
      InstructionSet.I_FLOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FLOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD
      -
       
      -
      InstructionSet.I_FLOAD_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FLOAD_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_0
      -
       
      -
      InstructionSet.I_FLOAD_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FLOAD_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_1
      -
       
      -
      InstructionSet.I_FLOAD_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FLOAD_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_2
      -
       
      -
      InstructionSet.I_FLOAD_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FLOAD_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FLOAD_3
      -
       
      -
      InstructionSet.I_FMUL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FMUL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FMUL
      -
       
      -
      InstructionSet.I_FNEG - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FNEG(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FNEG
      -
       
      -
      InstructionSet.I_FREM - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FREM(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FREM
      -
       
      -
      InstructionSet.I_FRETURN - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FRETURN(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FRETURN
      -
       
      -
      InstructionSet.I_FSTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FSTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE
      -
       
      -
      InstructionSet.I_FSTORE_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FSTORE_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_0
      -
       
      -
      InstructionSet.I_FSTORE_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FSTORE_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_1
      -
       
      -
      InstructionSet.I_FSTORE_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FSTORE_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FSTORE_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FSTORE_3
      -
       
      -
      InstructionSet.I_FSUB - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_FSUB(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_FSUB
      -
       
      -
      InstructionSet.I_GETFIELD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_GETFIELD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_GETFIELD
      -
       
      -
      InstructionSet.I_GETSTATIC - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_GETSTATIC(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_GETSTATIC
      -
       
      -
      InstructionSet.I_GOTO - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_GOTO(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO
      -
       
      -
      InstructionSet.I_GOTO_W - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_GOTO_W(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_GOTO_W
      -
       
      -
      InstructionSet.I_I2B - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_I2B(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_I2B
      -
       
      -
      InstructionSet.I_I2C - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_I2C(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_I2C
      -
       
      -
      InstructionSet.I_I2D - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_I2D(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_I2D
      -
       
      -
      InstructionSet.I_I2F - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_I2F(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_I2F
      -
       
      -
      InstructionSet.I_I2L - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_I2L(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_I2L
      -
       
      -
      InstructionSet.I_I2S - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_I2S(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_I2S
      -
       
      -
      InstructionSet.I_IADD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IADD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IADD
      -
       
      -
      InstructionSet.I_IALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IALOAD
      -
       
      -
      InstructionSet.I_IAND - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IAND(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IAND
      -
       
      -
      InstructionSet.I_IASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IASTORE
      -
       
      -
      InstructionSet.I_ICONST_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_0
      -
       
      -
      InstructionSet.I_ICONST_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_1
      -
       
      -
      InstructionSet.I_ICONST_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_2
      -
       
      -
      InstructionSet.I_ICONST_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_3
      -
       
      -
      InstructionSet.I_ICONST_4 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_4(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_4
      -
       
      -
      InstructionSet.I_ICONST_5 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_5(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_5
      -
       
      -
      InstructionSet.I_ICONST_M1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ICONST_M1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_M1
      -
       
      -
      InstructionSet.I_IDIV - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IDIV(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IDIV
      -
       
      -
      InstructionSet.I_IF_ACMPEQ - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ACMPEQ(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPEQ
      -
       
      -
      InstructionSet.I_IF_ACMPNE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ACMPNE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ACMPNE
      -
       
      -
      InstructionSet.I_IF_ICMPEQ - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ICMPEQ(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPEQ
      -
       
      -
      InstructionSet.I_IF_ICMPGE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ICMPGE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGE
      -
       
      -
      InstructionSet.I_IF_ICMPGT - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ICMPGT(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPGT
      -
       
      -
      InstructionSet.I_IF_ICMPLE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ICMPLE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLE
      -
       
      -
      InstructionSet.I_IF_ICMPLT - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ICMPLT(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPLT
      -
       
      -
      InstructionSet.I_IF_ICMPNE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IF_ICMPNE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IF_ICMPNE
      -
       
      -
      InstructionSet.I_IFEQ - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFEQ(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFEQ
      -
       
      -
      InstructionSet.I_IFGE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFGE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFGE
      -
       
      -
      InstructionSet.I_IFGT - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFGT(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFGT
      -
       
      -
      InstructionSet.I_IFLE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFLE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFLE
      -
       
      -
      InstructionSet.I_IFLT - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFLT(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFLT
      -
       
      -
      InstructionSet.I_IFNE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFNE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNE
      -
       
      -
      InstructionSet.I_IFNONNULL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFNONNULL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNONNULL
      -
       
      -
      InstructionSet.I_IFNULL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IFNULL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IFNULL
      -
       
      -
      InstructionSet.I_IINC - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IINC(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      InstructionSet.I_ILOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ILOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD
      -
       
      -
      InstructionSet.I_ILOAD_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ILOAD_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_0
      -
       
      -
      InstructionSet.I_ILOAD_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ILOAD_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_1
      -
       
      -
      InstructionSet.I_ILOAD_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ILOAD_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_2
      -
       
      -
      InstructionSet.I_ILOAD_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ILOAD_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ILOAD_3
      -
       
      -
      InstructionSet.I_IMUL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IMUL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IMUL
      -
       
      -
      InstructionSet.I_INEG - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INEG(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INEG
      -
       
      -
      InstructionSet.I_INSTANCEOF - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INSTANCEOF(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INSTANCEOF
      -
       
      -
      InstructionSet.I_INVOKEDYNAMIC - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INVOKEDYNAMIC(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEDYNAMIC
      -
       
      -
      InstructionSet.I_INVOKEINTERFACE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INVOKEINTERFACE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEINTERFACE
      -
       
      -
      InstructionSet.I_INVOKESPECIAL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INVOKESPECIAL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESPECIAL
      -
       
      -
      InstructionSet.I_INVOKESTATIC - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INVOKESTATIC(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKESTATIC
      -
       
      -
      InstructionSet.I_INVOKEVIRTUAL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_INVOKEVIRTUAL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_INVOKEVIRTUAL
      -
       
      -
      InstructionSet.I_IOR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IOR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IOR
      -
       
      -
      InstructionSet.I_IREM - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IREM(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IREM
      -
       
      -
      InstructionSet.I_IRETURN - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IRETURN(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IRETURN
      -
       
      -
      InstructionSet.I_ISHL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISHL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISHL
      -
       
      -
      InstructionSet.I_ISHR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISHR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISHR
      -
       
      -
      InstructionSet.I_ISTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE
      -
       
      -
      InstructionSet.I_ISTORE_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISTORE_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_0
      -
       
      -
      InstructionSet.I_ISTORE_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISTORE_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_1
      -
       
      -
      InstructionSet.I_ISTORE_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISTORE_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_2
      -
       
      -
      InstructionSet.I_ISTORE_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISTORE_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISTORE_3
      -
       
      -
      InstructionSet.I_ISUB - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_ISUB(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_ISUB
      -
       
      -
      InstructionSet.I_IUSHR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IUSHR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IUSHR
      -
       
      -
      InstructionSet.I_IXOR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_IXOR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_IXOR
      -
       
      -
      InstructionSet.I_JSR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_JSR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_JSR
      -
       
      -
      InstructionSet.I_JSR_W - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_JSR_W(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_JSR_W
      -
       
      -
      InstructionSet.I_L2D - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_L2D(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_L2D
      -
       
      -
      InstructionSet.I_L2F - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_L2F(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_L2F
      -
       
      -
      InstructionSet.I_L2I - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_L2I(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_L2I
      -
       
      -
      InstructionSet.I_LADD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LADD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LADD
      -
       
      -
      InstructionSet.I_LALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LALOAD
      -
       
      -
      InstructionSet.I_LAND - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LAND(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LAND
      -
       
      -
      InstructionSet.I_LASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LASTORE
      -
       
      -
      InstructionSet.I_LCMP - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LCMP(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LCMP
      -
       
      -
      InstructionSet.I_LCONST_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LCONST_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_0
      -
       
      -
      InstructionSet.I_LCONST_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LCONST_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LCONST_1
      -
       
      -
      InstructionSet.I_LDC - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LDC(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC
      -
       
      -
      InstructionSet.I_LDC2_W - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LDC2_W(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC2_W
      -
       
      -
      InstructionSet.I_LDC_W - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LDC_W(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LDC_W
      -
       
      -
      InstructionSet.I_LDIV - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LDIV(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LDIV
      -
       
      -
      InstructionSet.I_LLOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LLOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD
      -
       
      -
      InstructionSet.I_LLOAD_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LLOAD_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_0
      -
       
      -
      InstructionSet.I_LLOAD_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LLOAD_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_1
      -
       
      -
      InstructionSet.I_LLOAD_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LLOAD_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_2
      -
       
      -
      InstructionSet.I_LLOAD_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LLOAD_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LLOAD_3
      -
       
      -
      InstructionSet.I_LMUL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LMUL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LMUL
      -
       
      -
      InstructionSet.I_LNEG - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LNEG(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LNEG
      -
       
      -
      InstructionSet.I_LOOKUPSWITCH - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LOOKUPSWITCH(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LOOKUPSWITCH
      -
       
      -
      InstructionSet.I_LOR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LOR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LOR
      -
       
      -
      InstructionSet.I_LREM - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LREM(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LREM
      -
       
      -
      InstructionSet.I_LRETURN - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LRETURN(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LRETURN
      -
       
      -
      InstructionSet.I_LSHL - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSHL(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSHL
      -
       
      -
      InstructionSet.I_LSHR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSHR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSHR
      -
       
      -
      InstructionSet.I_LSTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE
      -
       
      -
      InstructionSet.I_LSTORE_0 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSTORE_0(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_0
      -
       
      -
      InstructionSet.I_LSTORE_1 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSTORE_1(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_1
      -
       
      -
      InstructionSet.I_LSTORE_2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSTORE_2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_2
      -
       
      -
      InstructionSet.I_LSTORE_3 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSTORE_3(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSTORE_3
      -
       
      -
      InstructionSet.I_LSUB - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LSUB(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LSUB
      -
       
      -
      InstructionSet.I_LUSHR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LUSHR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LUSHR
      -
       
      -
      InstructionSet.I_LXOR - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_LXOR(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_LXOR
      -
       
      -
      InstructionSet.I_MONITORENTER - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_MONITORENTER(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_MONITORENTER
      -
       
      -
      InstructionSet.I_MONITOREXIT - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_MONITOREXIT(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_MONITOREXIT
      -
       
      -
      InstructionSet.I_MULTIANEWARRAY - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_MULTIANEWARRAY(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_MULTIANEWARRAY
      -
       
      -
      InstructionSet.I_NEW - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_NEW(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_NEW
      -
       
      -
      InstructionSet.I_NEWARRAY - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_NEWARRAY(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_NEWARRAY
      -
       
      -
      InstructionSet.I_NOP - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_NOP(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_NOP
      -
       
      -
      InstructionSet.I_POP - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_POP(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_POP
      -
       
      -
      InstructionSet.I_POP2 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_POP2(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_POP2
      -
       
      -
      InstructionSet.I_PUTFIELD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_PUTFIELD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTFIELD
      -
       
      -
      InstructionSet.I_PUTSTATIC - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_PUTSTATIC(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_PUTSTATIC
      -
       
      -
      InstructionSet.I_RET - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_RET(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_RET
      -
       
      -
      InstructionSet.I_RETURN - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_RETURN(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_RETURN
      -
       
      -
      InstructionSet.I_SALOAD - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_SALOAD(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_SALOAD
      -
       
      -
      InstructionSet.I_SASTORE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_SASTORE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_SASTORE
      -
       
      -
      InstructionSet.I_SIPUSH - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_SIPUSH(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_SIPUSH
      -
       
      -
      InstructionSet.I_SWAP - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_SWAP(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_SWAP
      -
       
      -
      InstructionSet.I_TABLESWITCH - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_TABLESWITCH(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_TABLESWITCH
      -
       
      -
      InstructionSet.I_WIDE - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.I_WIDE(MethodModel, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      -
       
      -
      InstructionSet.If - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.If(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.If
      -
       
      -
      InstructionSet.IfUnary - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.IfUnary(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.IfUnary
      -
       
      -
      InstructionSet.ImmediateConstant<T> - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.ImmediateConstant(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.ImmediateConstant
      -
       
      -
      InstructionSet.ImmediateSpec - Enum in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.IncrementInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.IncrementInstruction(MethodModel, Instruction, boolean, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      -
       
      -
      InstructionSet.Index - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Index(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Index
      -
       
      -
      InstructionSet.Index08 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Index08(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Index08
      -
       
      -
      InstructionSet.Index16 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Index16(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Index16
      -
       
      -
      InstructionSet.IndexConst - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.IndexConst(MethodModel, InstructionSet.ByteCode, ByteReader, boolean, int) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.IndexConst
      -
       
      -
      InstructionSet.InlineAssignInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.InlineAssignInstruction(MethodModel, InstructionSet.AssignToLocalVariable, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.InlineAssignInstruction
      -
       
      -
      InstructionSet.InterfaceConstantPoolMethodIndexAccessor - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableConstIndexAccessor - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableConstIndexAccessor(MethodModel, InstructionSet.ByteCode, ByteReader, boolean, int) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexAccessor
      -
       
      -
      InstructionSet.LocalVariableConstIndexLoad - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableConstIndexLoad(MethodModel, InstructionSet.ByteCode, ByteReader, boolean, int) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexLoad
      -
       
      -
      InstructionSet.LocalVariableConstIndexStore - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableConstIndexStore(MethodModel, InstructionSet.ByteCode, ByteReader, boolean, int) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexStore
      -
       
      -
      InstructionSet.LocalVariableIndex08Accessor - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableIndex08Accessor(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Accessor
      -
       
      -
      InstructionSet.LocalVariableIndex08Load - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableIndex08Load(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Load
      -
       
      -
      InstructionSet.LocalVariableIndex08Store - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.LocalVariableIndex08Store(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Store
      -
       
      -
      InstructionSet.LocalVariableTableIndexAccessor - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.MethodCall - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.MultiAssignInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.MultiAssignInstruction(MethodModel, Instruction, Instruction, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.MultiAssignInstruction
      -
       
      -
      InstructionSet.New - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Operator - Enum in com.amd.aparapi.internal.instruction
      -
      -
      Represents an Operator
      -
      -
      InstructionSet.OperatorInstruction - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.PopSpec - Enum in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.PushSpec - Enum in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Return - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Return(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Return
      -
       
      -
      InstructionSet.Switch - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Switch(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.Switch
      -
       
      -
      InstructionSet.TypeSpec - Enum in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.Unary - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.UnaryOperator - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.UnconditionalBranch - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.UnconditionalBranch(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch
      -
       
      -
      InstructionSet.UnconditionalBranch(MethodModel, InstructionSet.ByteCode, Instruction) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch
      -
       
      -
      InstructionSet.UnconditionalBranch16 - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionSet.UnconditionalBranch16(MethodModel, InstructionSet.ByteCode, ByteReader, boolean) - Constructor for class com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch16
      -
       
      -
      InstructionSet.VirtualMethodCall - Interface in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionTransformer - Class in com.amd.aparapi.internal.instruction
      -
       
      -
      InstructionTransformer(String) - Constructor for class com.amd.aparapi.internal.instruction.InstructionTransformer
      -
       
      -
      InstructionViewer - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer(Color, String) - Constructor for class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      InstructionViewer() - Constructor for class com.amd.aparapi.internal.tool.InstructionViewer
      -
       
      -
      InstructionViewer.DoorBell - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.DoorBell() - Constructor for class com.amd.aparapi.internal.tool.InstructionViewer.DoorBell
      -
       
      -
      InstructionViewer.Form<T extends InstructionViewer.Form.Template> - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.Form(T) - Constructor for class com.amd.aparapi.internal.tool.InstructionViewer.Form
      -
       
      -
      InstructionViewer.Form.Check - Annotation Type in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.Form.List - Annotation Type in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.Form.OneOf - Annotation Type in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.Form.Template - Interface in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.Form.Toggle - Annotation Type in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.InstructionView - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.InstructionView(Instruction) - Constructor for class com.amd.aparapi.internal.tool.InstructionViewer.InstructionView
      -
       
      -
      InstructionViewer.Options - Class in com.amd.aparapi.internal.tool
      -
       
      -
      InstructionViewer.Options() - Constructor for class com.amd.aparapi.internal.tool.InstructionViewer.Options
      -
       
      -
      invert() - Method in class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      invert() - Method in class com.amd.aparapi.internal.instruction.BranchSet.LogicalExpressionNode
      -
       
      -
      invert() - Method in class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      -
       
      -
      invoke(Object, Method, Object[]) - Method in class com.amd.aparapi.device.OpenCLDevice.OpenCLInvocationHandler
      -
       
      -
      invoke(Object[]) - Method in class com.amd.aparapi.internal.opencl.OpenCLKernel
      -
       
      -
      isAfter(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isAfterOrEqual(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isAnd() - Method in class com.amd.aparapi.internal.instruction.BranchSet.CompoundLogicalExpressionNode
      -
       
      -
      isArray() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type
      -
       
      -
      isBackward() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      isBefore(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isBeforeOrEqual(Instruction) - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isBinary() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
       
      -
      isBranch() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isBreakOrContinue() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isConditional() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isConditionalBranch() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      isConditionalBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isDeclaration() - Method in interface com.amd.aparapi.internal.instruction.InstructionSet.AssignToLocalVariable
      -
       
      -
      isDeclaration() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_RET
      -
       
      -
      isDeclaration() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableConstIndexStore
      -
       
      -
      isDeclaration() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableIndex08Store
      -
       
      -
      isExplicit() - Method in class com.amd.aparapi.internal.kernel.KernelRunner
      -
       
      -
      isExplicit() - Method in class com.amd.aparapi.Kernel
      -
      -
      For dev purposes (we should remove this for production) determine whether this Kernel uses explicit memory management
      -
      -
      isForward() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isForward() - Method in class com.amd.aparapi.internal.tool.InstructionHelper.BranchVector
      -
       
      -
      isForwardBranch() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isForwardBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isForwardConditional() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isForwardConditionalBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isForwardUnconditional() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isForwardUnconditionalBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isGetter() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      isiinc() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_WIDE
      -
       
      -
      isInc() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement
      -
       
      -
      isInc() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.I_IINC
      -
       
      -
      isInc() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      -
       
      -
      isInvert() - Method in class com.amd.aparapi.internal.instruction.BranchSet.SimpleLogicalExpressionNode
      -
       
      -
      isLocalIsDerived() - Method in class com.amd.aparapi.Range
      -
       
      -
      isMappedMethod(ClassModel.ConstantPool.MethodReferenceEntry) - Static method in class com.amd.aparapi.Kernel
      -
       
      -
      isOpenCL() - Method in enum com.amd.aparapi.Kernel.EXECUTION_MODE
      -
       
      -
      isOpenCLAvailable() - Static method in class com.amd.aparapi.internal.opencl.OpenCLLoader
      -
      -
      Retrieve the status of whether OpenCL was successfully loaded
      -
      -
      isOpenCLDelegateMethod(ClassModel.ConstantPool.MethodReferenceEntry) - Static method in class com.amd.aparapi.Kernel
      -
       
      -
      isPre() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.FieldArrayElementIncrement
      -
       
      -
      isPre() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.IncrementInstruction
      -
       
      -
      isReverse() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isReverseBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isReverseConditional() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isReverseConditionalBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isReverseUnconditional() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isReverseUnconditionalBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isSetter() - Method in class com.amd.aparapi.internal.model.MethodModel
      -
       
      -
      isStatic() - Method in class com.amd.aparapi.internal.model.ClassModel.ClassModelMethod
      -
       
      -
      isSuperClass(String) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Determine if this is the superclass of some other named class.
      -
      -
      isSuperClass(Class<?>) - Method in class com.amd.aparapi.internal.model.ClassModel
      -
      -
      Determine if this is the superclass of some other class.
      -
      -
      isUnary() - Method in enum com.amd.aparapi.internal.instruction.InstructionSet.Operator
      -
       
      -
      isUnconditional() - Method in class com.amd.aparapi.internal.instruction.InstructionSet.Branch
      -
       
      -
      isUnconditionalBranchTarget() - Method in class com.amd.aparapi.internal.instruction.Instruction
      -
       
      -
      isValid() - Method in class com.amd.aparapi.Range
      -
       
      -
      isVoid() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool.ReferenceEntry.Type
      -
       
      -
      iterator() - Method in class com.amd.aparapi.internal.model.ClassModel.AttributePool.PoolEntry
      -
       
      -
      iterator() - Method in class com.amd.aparapi.internal.model.ClassModel.ConstantPool
      -
       
      -
      -A B C D E F G H I J K L M N O P R S T U V W _ 
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/index.html b/com.amd.aparapi/doc/api/index.html deleted file mode 100644 index 70aec448..00000000 --- a/com.amd.aparapi/doc/api/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - -Generated Documentation (Untitled) - - - - - - - - - -<noscript> -<div>JavaScript is disabled on your browser.</div> -</noscript> -<h2>Frame Alert</h2> -<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> - - - diff --git a/com.amd.aparapi/doc/api/overview-frame.html b/com.amd.aparapi/doc/api/overview-frame.html deleted file mode 100644 index 6cd71842..00000000 --- a/com.amd.aparapi/doc/api/overview-frame.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - -Overview List - - - - - - -

       

      - - diff --git a/com.amd.aparapi/doc/api/overview-summary.html b/com.amd.aparapi/doc/api/overview-summary.html deleted file mode 100644 index 389c0400..00000000 --- a/com.amd.aparapi/doc/api/overview-summary.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - - -Overview - - - - - - - -
      - - - - - -
      - - - - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/overview-tree.html b/com.amd.aparapi/doc/api/overview-tree.html deleted file mode 100644 index fd195e60..00000000 --- a/com.amd.aparapi/doc/api/overview-tree.html +++ /dev/null @@ -1,746 +0,0 @@ - - - - - -Class Hierarchy - - - - - - - -
      - - - - - -
      - - - -
      -

      Class Hierarchy

      - -

      Interface Hierarchy

      - -

      Annotation Type Hierarchy

      -
        -
      • com.amd.aparapi.internal.tool.InstructionViewer.Form.OneOf (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.tool.InstructionViewer.Form.List (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.tool.InstructionViewer.Form.Toggle (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.tool.InstructionViewer.Form.Check (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.annotation.Experimental (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Put (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Get (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Source (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Resource (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Kernel (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Arg (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.GlobalReadWrite (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.GlobalReadOnly (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.GlobalWriteOnly (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Local (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.opencl.OpenCL.Constant (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.Kernel.Local (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.Kernel.Constant (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.UsedByJNICode (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.Unused (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.RemoveMe (implements java.lang.annotation.Annotation)
      • -
      • com.amd.aparapi.internal.annotation.DocMe (implements java.lang.annotation.Annotation)
      • -
      -

      Enum Hierarchy

      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/package-list b/com.amd.aparapi/doc/api/package-list deleted file mode 100644 index 08d56e09..00000000 --- a/com.amd.aparapi/doc/api/package-list +++ /dev/null @@ -1,16 +0,0 @@ -com.amd.aparapi -com.amd.aparapi.annotation -com.amd.aparapi.device -com.amd.aparapi.exception -com.amd.aparapi.internal.annotation -com.amd.aparapi.internal.exception -com.amd.aparapi.internal.instruction -com.amd.aparapi.internal.jni -com.amd.aparapi.internal.kernel -com.amd.aparapi.internal.model -com.amd.aparapi.internal.opencl -com.amd.aparapi.internal.reader -com.amd.aparapi.internal.tool -com.amd.aparapi.internal.util -com.amd.aparapi.internal.writer -com.amd.aparapi.opencl diff --git a/com.amd.aparapi/doc/api/resources/background.gif b/com.amd.aparapi/doc/api/resources/background.gif deleted file mode 100644 index f471940f..00000000 Binary files a/com.amd.aparapi/doc/api/resources/background.gif and /dev/null differ diff --git a/com.amd.aparapi/doc/api/resources/tab.gif b/com.amd.aparapi/doc/api/resources/tab.gif deleted file mode 100644 index 1a73a83b..00000000 Binary files a/com.amd.aparapi/doc/api/resources/tab.gif and /dev/null differ diff --git a/com.amd.aparapi/doc/api/resources/titlebar.gif b/com.amd.aparapi/doc/api/resources/titlebar.gif deleted file mode 100644 index 17443b3e..00000000 Binary files a/com.amd.aparapi/doc/api/resources/titlebar.gif and /dev/null differ diff --git a/com.amd.aparapi/doc/api/resources/titlebar_end.gif b/com.amd.aparapi/doc/api/resources/titlebar_end.gif deleted file mode 100644 index 3ad78d46..00000000 Binary files a/com.amd.aparapi/doc/api/resources/titlebar_end.gif and /dev/null differ diff --git a/com.amd.aparapi/doc/api/serialized-form.html b/com.amd.aparapi/doc/api/serialized-form.html deleted file mode 100644 index 49fb33bf..00000000 --- a/com.amd.aparapi/doc/api/serialized-form.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - -Serialized Form - - - - - - - -
      - - - - - -
      - - -
      -

      Serialized Form

      -
      -
      - -
      - -
      - - - - - -
      - - - - diff --git a/com.amd.aparapi/doc/api/stylesheet.css b/com.amd.aparapi/doc/api/stylesheet.css deleted file mode 100644 index 0e0d70c1..00000000 --- a/com.amd.aparapi/doc/api/stylesheet.css +++ /dev/null @@ -1,474 +0,0 @@ -/* Javadoc style sheet */ -/* -Overall document style -*/ -body { - background-color:#ffffff; - color:#353833; - font-family:Arial, Helvetica, sans-serif; - font-size:76%; - margin:0; -} -a:link, a:visited { - text-decoration:none; - color:#4c6b87; -} -a:hover, a:focus { - text-decoration:none; - color:#bb7a2a; -} -a:active { - text-decoration:none; - color:#4c6b87; -} -a[name] { - color:#353833; -} -a[name]:hover { - text-decoration:none; - color:#353833; -} -pre { - font-size:1.3em; -} -h1 { - font-size:1.8em; -} -h2 { - font-size:1.5em; -} -h3 { - font-size:1.4em; -} -h4 { - font-size:1.3em; -} -h5 { - font-size:1.2em; -} -h6 { - font-size:1.1em; -} -ul { - list-style-type:disc; -} -code, tt { - font-size:1.2em; -} -dt code { - font-size:1.2em; -} -table tr td dt code { - font-size:1.2em; - vertical-align:top; -} -sup { - font-size:.6em; -} -/* -Document title and Copyright styles -*/ -.clear { - clear:both; - height:0px; - overflow:hidden; -} -.aboutLanguage { - float:right; - padding:0px 21px; - font-size:.8em; - z-index:200; - margin-top:-7px; -} -.legalCopy { - margin-left:.5em; -} -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} -.tab { - background-color:#0066FF; - background-image:url(resources/titlebar.gif); - background-position:left top; - background-repeat:no-repeat; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; -} -/* -Navigation bar styles -*/ -.bar { - background-image:url(resources/background.gif); - background-repeat:repeat-x; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:1em; - margin:0; -} -.topNav { - background-image:url(resources/background.gif); - background-repeat:repeat-x; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; -} -.bottomNav { - margin-top:10px; - background-image:url(resources/background.gif); - background-repeat:repeat-x; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; -} -.subNav { - background-color:#dee3e9; - border-bottom:1px solid #9eadc0; - float:left; - width:100%; - overflow:hidden; -} -.subNav div { - clear:left; - float:left; - padding:0 0 5px 6px; -} -ul.navList, ul.subNavList { - float:left; - margin:0 25px 0 0; - padding:0; -} -ul.navList li{ - list-style:none; - float:left; - padding:3px 6px; -} -ul.subNavList li{ - list-style:none; - float:left; - font-size:90%; -} -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { - color:#FFFFFF; - text-decoration:none; -} -.topNav a:hover, .bottomNav a:hover { - text-decoration:none; - color:#bb7a2a; -} -.navBarCell1Rev { - background-image:url(resources/tab.gif); - background-color:#a88834; - color:#FFFFFF; - margin: auto 5px; - border:1px solid #c9aa44; -} -/* -Page header and footer styles -*/ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexHeader { - margin:10px; - position:relative; -} -.indexHeader h1 { - font-size:1.3em; -} -.title { - color:#2c4557; - margin:10px 0; -} -.subTitle { - margin:5px 0 0 0; -} -.header ul { - margin:0 0 25px 0; - padding:0; -} -.footer ul { - margin:20px 0 5px 0; -} -.header ul li, .footer ul li { - list-style:none; - font-size:1.2em; -} -/* -Heading styles -*/ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border-top:1px solid #9eadc0; - border-bottom:1px solid #9eadc0; - margin:0 0 6px -8px; - padding:2px 5px; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color:#dee3e9; - border-top:1px solid #9eadc0; - border-bottom:1px solid #9eadc0; - margin:0 0 6px -8px; - padding:2px 5px; -} -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} -/* -Page layout container styles -*/ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { - clear:both; - padding:10px 20px; - position:relative; -} -.indexContainer { - margin:10px; - position:relative; - font-size:1.0em; -} -.indexContainer h2 { - font-size:1.1em; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { - font-size:1.1em; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; -} -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:10px 0 10px 20px; -} -.serializedFormContainer dl.nameValue dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; -} -.serializedFormContainer dl.nameValue dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; -} -/* -List styles -*/ -ul.horizontal li { - display:inline; - font-size:0.9em; -} -ul.inheritance { - margin:0; - padding:0; -} -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; -} -ul.blockList, ul.blockListLast { - margin:10px 0 10px 0; - padding:0; -} -ul.blockList li.blockList, ul.blockListLast li.blockList { - list-style:none; - margin-bottom:25px; -} -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #9eadc0; - background-color:#f9f9f9; -} -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:1px solid #9eadc0; - border-top:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; - border-bottom:1px solid #9eadc0; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; -} -/* -Table styles -*/ -.contentContainer table, .classUseContainer table, .constantValuesContainer table { - border-bottom:1px solid #9eadc0; - width:100%; -} -.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table { - width:100%; -} -.contentContainer .description table, .contentContainer .details table { - border-bottom:none; -} -.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{ - vertical-align:top; - padding-right:20px; -} -.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast, -.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast, -.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne, -.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne { - padding-right:3px; -} -.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#FFFFFF; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0px; - margin:0px; -} -caption a:link, caption a:hover, caption a:active, caption a:visited { - color:#FFFFFF; -} -.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span { - white-space:nowrap; - padding-top:8px; - padding-left:8px; - display:block; - float:left; - background-image:url(resources/titlebar.gif); - height:18px; -} -.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd { - width:10px; - background-image:url(resources/titlebar_end.gif); - background-repeat:no-repeat; - background-position:top right; - position:relative; - float:left; -} -ul.blockList ul.blockList li.blockList table { - margin:0 0 12px 0px; - width:100%; -} -.tableSubHeadingColor { - background-color: #EEEEFF; -} -.altColor { - background-color:#eeeeef; -} -.rowColor { - background-color:#ffffff; -} -.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td { - text-align:left; - padding:3px 3px 3px 7px; -} -th.colFirst, th.colLast, th.colOne, .constantValuesContainer th { - background:#dee3e9; - border-top:1px solid #9eadc0; - border-bottom:1px solid #9eadc0; - text-align:left; - padding:3px 3px 3px 7px; -} -td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { - font-weight:bold; -} -td.colFirst, th.colFirst { - border-left:1px solid #9eadc0; - white-space:nowrap; -} -td.colLast, th.colLast { - border-right:1px solid #9eadc0; -} -td.colOne, th.colOne { - border-right:1px solid #9eadc0; - border-left:1px solid #9eadc0; -} -table.overviewSummary { - padding:0px; - margin-left:0px; -} -table.overviewSummary td.colFirst, table.overviewSummary th.colFirst, -table.overviewSummary td.colOne, table.overviewSummary th.colOne { - width:25%; - vertical-align:middle; -} -table.packageSummary td.colFirst, table.overviewSummary th.colFirst { - width:25%; - vertical-align:middle; -} -/* -Content styles -*/ -.description pre { - margin-top:0; -} -.deprecatedContent { - margin:0; - padding:10px 0; -} -.docSummary { - padding:0; -} -/* -Formatting effect styles -*/ -.sourceLineNo { - color:green; - padding:0 30px 0 0; -} -h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:.9em; -} -.block { - display:block; - margin:3px 0 0 0; -} -.strong { - font-weight:bold; -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/Config.java b/com.amd.aparapi/src/java/com/amd/aparapi/Config.java deleted file mode 100644 index 8f9df4d3..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/Config.java +++ /dev/null @@ -1,210 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - - */ -package com.amd.aparapi; - -import java.util.logging.Handler; -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.amd.aparapi.internal.instruction.Instruction; -import com.amd.aparapi.internal.jni.ConfigJNI; -import com.amd.aparapi.internal.tool.InstructionViewer; - -/** - * A central location for holding all runtime configurable properties as well as logging configuration. - * - * Ideally we will find all properties used by Aparapi here. Please consider updating this class if you wish - * to add new properties which control Aparapis behavior. - * - * @author gfrost - * - */ -public class Config extends ConfigJNI{ - - // Logging setup - private static final String logPropName = propPkgName + ".logLevel"; - - private static final Logger logger = Logger.getLogger(Config.getLoggerName()); - - /** - * Allows the user to request to use a jvmti agent to - * access JNI code rather than loading explicitly. - * - * Usage -agentpath=/full/path/to/agent.dll -Dcom.amd.aparapi.useAgent=true - */ - - public static final boolean useAgent = Boolean.getBoolean(propPkgName + ".useAgent"); - - /** - * Disable Unsafe - */ - public static final boolean disableUnsafe = Boolean.getBoolean(propPkgName + ".disableUnsafe"); - - /** - * Allows the user to request a specific Kernel.EXECUTION_MODE enum value for all Kernels. - * - * Usage -Dcom.amd.aparapi.executionMode={SEQ|JTP|CPU|GPU} - * - * @see com.amd.aparapi.Kernel.EXECUTION_MODE - */ - public static final String executionMode = System.getProperty(propPkgName + ".executionMode"); - - /** - * Allows the user to request that the execution mode of each kernel invocation be reported to stdout. - * - * Usage -Dcom.amd.aparapi.enableExecutionModeReporting={true|false} - * - */ - public static final boolean enableExecutionModeReporting = Boolean.getBoolean(propPkgName + ".enableExecutionModeReporting"); - - /** - * Allows the user to request that generated OpenCL code is dumped to standard out. - * - * Usage -Dcom.amd.aparapi.enableShowGeneratedOpenCL={true|false} - * - */ - public static final boolean enableShowGeneratedOpenCL = Boolean.getBoolean(propPkgName + ".enableShowGeneratedOpenCL"); - - // Pragma/OpenCL codegen related flags - public static final boolean enableAtomic32 = Boolean.getBoolean(propPkgName + ".enableAtomic32"); - - public static final boolean enableAtomic64 = Boolean.getBoolean(propPkgName + ".enableAtomic64"); - - public static final boolean enableByteWrites = Boolean.getBoolean(propPkgName + ".enableByteWrites"); - - public static final boolean enableDoubles = Boolean.getBoolean(propPkgName + ".enableDoubles"); - - // Debugging related flags - public static final boolean verboseComparitor = Boolean.getBoolean(propPkgName + ".verboseComparitor"); - - public static final boolean dumpFlags = Boolean.getBoolean(propPkgName + ".dumpFlags"); - - // Individual bytecode support related flags - public static final boolean enablePUTFIELD = Boolean.getBoolean(propPkgName + ".enable.PUTFIELD"); - - public static final boolean enableARETURN = !Boolean.getBoolean(propPkgName + ".disable.ARETURN"); - - public static final boolean enablePUTSTATIC = Boolean.getBoolean(propPkgName + ".enable.PUTSTATIC"); - - // Allow static array accesses - public static final boolean enableGETSTATIC = true; //Boolean.getBoolean(propPkgName + ".enable.GETSTATIC"); - - public static final boolean enableINVOKEINTERFACE = Boolean.getBoolean(propPkgName + ".enable.INVOKEINTERFACE"); - - public static final boolean enableMONITOR = Boolean.getBoolean(propPkgName + ".enable.MONITOR"); - - public static final boolean enableNEW = Boolean.getBoolean(propPkgName + ".enable.NEW"); - - public static final boolean enableATHROW = Boolean.getBoolean(propPkgName + ".enable.ATHROW"); - - public static final boolean enableMETHODARRAYPASSING = !Boolean.getBoolean(propPkgName + ".disable.METHODARRAYPASSING"); - - public static final boolean enableARRAYLENGTH = Boolean.getBoolean(propPkgName + ".enable.ARRAYLENGTH"); - - public static final boolean enableSWITCH = Boolean.getBoolean(propPkgName + ".enable.SWITCH"); - - public static boolean enableShowFakeLocalVariableTable = Boolean.getBoolean(propPkgName + ".enableShowFakeLocalVariableTable"); - - public static final boolean enableInstructionDecodeViewer = Boolean.getBoolean(propPkgName + ".enableInstructionDecodeViewer"); - - public static String instructionListenerClassName = System.getProperty(propPkgName + ".instructionListenerClass"); - - public static InstructionListener instructionListener = null; - - public interface InstructionListener{ - void showAndTell(String message, Instruction _start, Instruction _instruction); - } - - static { - try { - final Level level = Level.parse(System.getProperty(getLoggerName(), "WARNING")); - - final Handler[] handlers = Logger.getLogger("").getHandlers(); - for (final Handler handler : handlers) { - handler.setLevel(level); - } - - logger.setLevel(level); - } catch (final Exception e) { - System.out.println("Exception " + e + " in Aparapi logging setup"); - e.printStackTrace(); - } - }; - - static { - if (enableInstructionDecodeViewer && ((instructionListenerClassName == null) || instructionListenerClassName.equals(""))) { - instructionListenerClassName = InstructionViewer.class.getName(); - } - - if ((instructionListenerClassName != null) && !instructionListenerClassName.equals("")) { - try { - final Class instructionListenerClass = Class.forName(instructionListenerClassName); - instructionListener = (InstructionListener) instructionListenerClass.newInstance(); - } catch (final ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - if (dumpFlags) { - System.out.println(propPkgName + ".executionMode{GPU|CPU|JTP|SEQ}=" + executionMode); - System.out.println(propPkgName + ".logLevel{OFF|FINEST|FINER|FINE|WARNING|SEVERE|ALL}=" + logger.getLevel()); - System.out.println(propPkgName + ".enableProfiling{true|false}=" + enableProfiling); - System.out.println(propPkgName + ".enableProfilingCSV{true|false}=" + enableProfilingCSV); - System.out.println(propPkgName + ".enableVerboseJNI{true|false}=" + enableVerboseJNI); - System.out.println(propPkgName + ".enableVerboseJNIOpenCLResourceTracking{true|false}=" - + enableVerboseJNIOpenCLResourceTracking); - System.out.println(propPkgName + ".enableShowGeneratedOpenCL{true|false}=" + enableShowGeneratedOpenCL); - System.out.println(propPkgName + ".enableExecutionModeReporting{true|false}=" + enableExecutionModeReporting); - System.out.println(propPkgName + ".enableInstructionDecodeViewer{true|false}=" + enableInstructionDecodeViewer); - System.out.println(propPkgName - + ".instructionListenerClassName{}=" - + instructionListenerClassName); - } - } - - public static String getLoggerName() { - return logPropName; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/Kernel.java b/com.amd.aparapi/src/java/com/amd/aparapi/Kernel.java deleted file mode 100644 index 0069d4e4..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/Kernel.java +++ /dev/null @@ -1,2862 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -import com.amd.aparapi.annotation.*; -import com.amd.aparapi.exception.*; -import com.amd.aparapi.internal.kernel.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.*; -import com.amd.aparapi.internal.opencl.*; -import com.amd.aparapi.internal.util.*; - -import java.lang.annotation.*; -import java.lang.reflect.*; -import java.util.*; -import java.util.concurrent.*; -import java.util.logging.*; - -/** - * A kernel encapsulates a data parallel algorithm that will execute either on a GPU - * (through conversion to OpenCL) or on a CPU via a Java Thread Pool. - *

      - * To write a new kernel, a developer extends the Kernel class and overrides the Kernel.run() method. - * To execute this kernel, the developer creates a new instance of it and calls Kernel.execute(int globalSize) with a suitable 'global size'. At runtime - * Aparapi will attempt to convert the Kernel.run() method (and any method called directly or indirectly - * by Kernel.run()) into OpenCL for execution on GPU devices made available via the OpenCL platform. - *

      - * Note that Kernel.run() is not called directly. Instead, - * the Kernel.execute(int globalSize) method will cause the overridden Kernel.run() - * method to be invoked once for each value in the range 0...globalSize. - *

      - * On the first call to Kernel.execute(int _globalSize), Aparapi will determine the EXECUTION_MODE of the kernel. - * This decision is made dynamically based on two factors: - *

        - *
      1. Whether OpenCL is available (appropriate drivers are installed and the OpenCL and Aparapi dynamic libraries are included on the system path).
      2. - *
      3. Whether the bytecode of the run() method (and every method that can be called directly or indirectly from the run() method) - * can be converted into OpenCL.
      4. - *
      - *

      - * Below is an example Kernel that calculates the square of a set of input values. - *

      - *

      - *     class SquareKernel extends Kernel{
      - *         private int values[];
      - *         private int squares[];
      - *         public SquareKernel(int values[]){
      - *            this.values = values;
      - *            squares = new int[values.length];
      - *         }
      - *         public void run() {
      - *             int gid = getGlobalID();
      - *             squares[gid] = values[gid]*values[gid];
      - *         }
      - *         public int[] getSquares(){
      - *             return(squares);
      - *         }
      - *     }
      - * 
      - *

      - * To execute this kernel, first create a new instance of it and then call execute(Range _range). - *

      - *

      - *     int[] values = new int[1024];
      - *     // fill values array
      - *     Range range = Range.create(values.length); // create a range 0..1024
      - *     SquareKernel kernel = new SquareKernel(values);
      - *     kernel.execute(range);
      - * 
      - *

      - * When execute(Range) returns, all the executions of Kernel.run() have completed and the results are available in the squares array. - *

      - *

      - *     int[] squares = kernel.getSquares();
      - *     for (int i=0; i< values.length; i++){
      - *        System.out.printf("%4d %4d %8d\n", i, values[i], squares[i]);
      - *     }
      - * 
      - *

      - * A different approach to creating kernels that avoids extending Kernel is to write an anonymous inner class: - *

      - *

      - *   
      - *     final int[] values = new int[1024];
      - *     // fill the values array 
      - *     final int[] squares = new int[values.length];
      - *     final Range range = Range.create(values.length);
      - *   
      - *     Kernel kernel = new Kernel(){
      - *         public void run() {
      - *             int gid = getGlobalID();
      - *             squares[gid] = values[gid]*values[gid];
      - *         }
      - *     };
      - *     kernel.execute(range);
      - *     for (int i=0; i< values.length; i++){
      - *        System.out.printf("%4d %4d %8d\n", i, values[i], squares[i]);
      - *     }
      - *     
      - * 
      - *

      - * - * @author gfrost AMD Javalabs - * @version Alpha, 21/09/2010 - */ -public abstract class Kernel implements Cloneable { - - private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - /** - * We can use this Annotation to 'tag' intended local buffers. - * - * So we can either annotate the buffer - *

      
      -    *  @Local int[] buffer = new int[1024];
      -    *  
      - * Or use a special suffix - *
      
      -    *  int[] buffer_$local$ = new int[1024];
      -    *  
      - * - * @see #LOCAL_SUFFIX - * - * - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface Local { - - } - - /** - * We can use this Annotation to 'tag' intended constant buffers. - * - * So we can either annotate the buffer - *
      
      -    *  @Constant int[] buffer = new int[1024];
      -    *  
      - * Or use a special suffix - *
      
      -    *  int[] buffer_$constant$ = new int[1024];
      -    *  
      - * - * @see #LOCAL_SUFFIX - * - * - */ - @Retention(RetentionPolicy.RUNTIME) - public @interface Constant { - - } - - /** - * - * We can use this Annotation to 'tag' __private (unshared) array fields. Data in the __private address space in OpenCL is accessible only from - * the current kernel instance. - * - * To so mark a field with a buffer size of 99, we can either annotate the buffer - *
      
      -    *  @PrivateMemorySpace(99) int[] buffer = new int[99];
      -    *  
      - * Or use a special suffix - *
      
      -    *  int[] buffer_$private$99 = new int[99];
      -    *  
      - * - *

      Note that any code which must be runnable in {@link EXECUTION_MODE#JTP} will fail to work correctly if it uses such an - * array, as the array will be shared by all threads. The solution is to create a {@link NoCL} method called at the start of {@link #run()} which sets - * the field to an array returned from a static ThreadLocal

      . Please see MedianKernel7x7 in the samples for an example. - * - * @see #PRIVATE_SUFFIX - */ - @Retention(RetentionPolicy.RUNTIME) - @Target({ElementType.FIELD}) - public @interface PrivateMemorySpace { - /** Size of the array used as __private buffer. */ - int value(); - } - - /** - * Annotation which can be applied to either a getter (with usual java bean naming convention relative to an instance field), or to any method - * with void return type, which prevents both the method body and any calls to the method being emitted in the generated OpenCL. (In the case of a getter, the - * underlying field is used in place of the NoCL getter method.) This allows for code specialization within a java/JTP execution path, for example to - * allow logging/breakpointing when debugging, or to apply ThreadLocal processing (see {@link PrivateMemorySpace}) in java to simulate OpenCL __private - * memory. - */ - @Retention(RetentionPolicy.RUNTIME) - @Target({ElementType.METHOD, ElementType.FIELD}) - public @interface NoCL { - // empty - } - - /** - * We can use this suffix to 'tag' intended local buffers. - * - * - * So either name the buffer - *
      
      -    *  int[] buffer_$local$ = new int[1024];
      -    *  
      - * Or use the Annotation form - *
      
      -    *  @Local int[] buffer = new int[1024];
      -    *  
      - */ - public final static String LOCAL_SUFFIX = "_$local$"; - - /** - * We can use this suffix to 'tag' intended constant buffers. - * - * - * So either name the buffer - *
      
      -    *  int[] buffer_$constant$ = new int[1024];
      -    *  
      - * Or use the Annotation form - *
      
      -    *  @Constant int[] buffer = new int[1024];
      -    *  
      - */ - public final static String CONSTANT_SUFFIX = "_$constant$"; - - /** - * We can use this suffix to 'tag' __private buffers. - * - *

      So either name the buffer - *

      
      -    *  int[] buffer_$private$32 = new int[32];
      -    *  
      - * Or use the Annotation form - *
      
      -    *  @PrivateMemorySpace(32) int[] buffer = new int[32];
      -    *  
      - * - * @see PrivateMemorySpace for a more detailed usage summary - */ - public final static String PRIVATE_SUFFIX = "_$private$"; - - /** - * This annotation is for internal use only - */ - @Retention(RetentionPolicy.RUNTIME) - protected @interface OpenCLDelegate { - - } - - /** - * This annotation is for internal use only - */ - @Retention(RetentionPolicy.RUNTIME) - protected @interface OpenCLMapping { - String mapTo() default ""; - - boolean atomic32() default false; - - boolean atomic64() default false; - } - - public abstract class Entry { - public abstract void run(); - - public Kernel execute(Range _range) { - return (Kernel.this.execute("foo", _range, 1)); - } - } - - /** - * The execution mode ENUM enumerates the possible modes of executing a kernel. - * One can request a mode of execution using the values below, and query a kernel after it first executes to - * determine how it executed. - * - *

      - * Aparapi supports 4 execution modes. - *

        - * - * - * - * - * - * - *
        Enum valueExecution
        GPUExecute using OpenCL on first available GPU device
        CPUExecute using OpenCL on first available CPU device
        JTPExecute using a Java Thread Pool (one thread spawned per available core)
        SEQExecute using a single loop. This is useful for debugging but will be less - * performant than the other modes
        - *
      - *

      - * To request that a kernel is executed in a specific mode, call Kernel.setExecutionMode(EXECUTION_MODE) before the - * kernel first executes. - *

      - *

      -    *     int[] values = new int[1024];
      -    *     // fill values array
      -    *     SquareKernel kernel = new SquareKernel(values);
      -    *     kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP);
      -    *     kernel.execute(values.length);
      -    * 
      - *

      - * Alternatively, the property com.amd.aparapi.executionMode can be set to one of JTP,GPU,CPU,SEQ - * when an application is launched. - *

      -    *    java -classpath ....;aparapi.jar -Dcom.amd.aparapi.executionMode=GPU MyApplication  
      -    * 

      - * Generally setting the execution mode is not recommended (it is best to let Aparapi decide automatically) but the option - * provides a way to compare a kernel's performance under multiple execution modes. - * - * @author gfrost AMD Javalabs - * @version Alpha, 21/09/2010 - */ - - public static enum EXECUTION_MODE { - /** - * A dummy value to indicate an unknown state. - */ - NONE, - /** - * The value representing execution on a GPU device via OpenCL. - */ - GPU, - /** - * The value representing execution on a CPU device via OpenCL. - *

      - * Note not all OpenCL implementations support OpenCL compute on the CPU. - */ - CPU, - /** - * The value representing execution on a Java Thread Pool. - *

      - * By default one Java thread is started for each available core and each core will execute globalSize/cores work items. - * This creates a total of globalSize%cores threads to complete the work. - * Choose suitable values for globalSize to minimize the number of threads that are spawned. - */ - JTP, - /** - * The value representing execution sequentially in a single loop. - *

      - * This is meant to be used for debugging a kernel. - */ - SEQ; - - static EXECUTION_MODE getDefaultExecutionMode() { - EXECUTION_MODE defaultExecutionMode = OpenCLLoader.isOpenCLAvailable() ? GPU : JTP; - final String executionMode = Config.executionMode; - if (executionMode != null) { - try { - EXECUTION_MODE requestedExecutionMode; - requestedExecutionMode = getExecutionModeFromString(executionMode).iterator().next(); - logger.fine("requested execution mode ="); - if ((OpenCLLoader.isOpenCLAvailable() && requestedExecutionMode.isOpenCL()) || !requestedExecutionMode.isOpenCL()) { - defaultExecutionMode = requestedExecutionMode; - } - } catch (final Throwable t) { - // we will take the default - } - } - - logger.fine("default execution modes = " + defaultExecutionMode); - - return (defaultExecutionMode); - } - - static LinkedHashSet getDefaultExecutionModes() { - LinkedHashSet defaultExecutionModes = new LinkedHashSet(); - - if (OpenCLLoader.isOpenCLAvailable()) { - defaultExecutionModes.add(GPU); - defaultExecutionModes.add(JTP); - } else { - defaultExecutionModes.add(JTP); - } - - final String executionMode = Config.executionMode; - - if (executionMode != null) { - try { - LinkedHashSet requestedExecutionModes; - requestedExecutionModes = EXECUTION_MODE.getExecutionModeFromString(executionMode); - logger.fine("requested execution mode ="); - for (final EXECUTION_MODE mode : requestedExecutionModes) { - logger.fine(" " + mode); - } - if ((OpenCLLoader.isOpenCLAvailable() && EXECUTION_MODE.anyOpenCL(requestedExecutionModes)) - || !EXECUTION_MODE.anyOpenCL(requestedExecutionModes)) { - defaultExecutionModes = requestedExecutionModes; - } - } catch (final Throwable t) { - // we will take the default - } - } - - logger.info("default execution modes = " + defaultExecutionModes); - - for (final EXECUTION_MODE e : defaultExecutionModes) { - logger.info("SETTING DEFAULT MODE: " + e.toString()); - } - - return (defaultExecutionModes); - } - - static LinkedHashSet getExecutionModeFromString(String executionMode) { - final LinkedHashSet executionModes = new LinkedHashSet(); - for (final String mode : executionMode.split(",")) { - executionModes.add(valueOf(mode.toUpperCase())); - } - return executionModes; - } - - static EXECUTION_MODE getFallbackExecutionMode() { - final EXECUTION_MODE defaultFallbackExecutionMode = JTP; - logger.info("fallback execution mode = " + defaultFallbackExecutionMode); - return (defaultFallbackExecutionMode); - } - - static boolean anyOpenCL(LinkedHashSet _executionModes) { - for (final EXECUTION_MODE mode : _executionModes) { - if ((mode == GPU) || (mode == CPU)) { - return true; - } - } - return false; - } - - public boolean isOpenCL() { - return (this == GPU) || (this == CPU); - } - }; - - private KernelRunner kernelRunner = null; - - private KernelState kernelState = new KernelState(); - - /** - * This class is for internal Kernel state management

      - * NOT INTENDED FOR USE BY USERS - */ - public final class KernelState { - - private int[] globalIds = new int[] { - 0, - 0, - 0 - }; - - private int[] localIds = new int[] { - 0, - 0, - 0 - }; - - private int[] groupIds = new int[] { - 0, - 0, - 0 - }; - - private Range range; - - private int passId; - - private volatile CyclicBarrier localBarrier; - - /** - * Default constructor - */ - protected KernelState() { - - } - - /** - * Copy constructor - */ - protected KernelState(KernelState kernelState) { - globalIds = kernelState.getGlobalIds(); - localIds = kernelState.getLocalIds(); - groupIds = kernelState.getGroupIds(); - range = kernelState.getRange(); - passId = kernelState.getPassId(); - localBarrier = kernelState.getLocalBarrier(); - } - - /** - * @return the globalIds - */ - public int[] getGlobalIds() { - return globalIds; - } - - /** - * @param globalIds the globalIds to set - */ - public void setGlobalIds(int[] globalIds) { - this.globalIds = globalIds; - } - - /** - * Set a specific index value - * - * @param _index - * @param value - */ - public void setGlobalId(int _index, int value) { - globalIds[_index] = value; - } - - /** - * @return the localIds - */ - public int[] getLocalIds() { - return localIds; - } - - /** - * @param localIds the localIds to set - */ - public void setLocalIds(int[] localIds) { - this.localIds = localIds; - } - - /** - * Set a specific index value - * - * @param _index - * @param value - */ - public void setLocalId(int _index, int value) { - localIds[_index] = value; - } - - /** - * @return the groupIds - */ - public int[] getGroupIds() { - return groupIds; - } - - /** - * @param groupIds the groupIds to set - */ - public void setGroupIds(int[] groupIds) { - this.groupIds = groupIds; - } - - /** - * Set a specific index value - * - * @param _index - * @param value - */ - public void setGroupId(int _index, int value) { - groupIds[_index] = value; - } - - /** - * @return the range - */ - public Range getRange() { - return range; - } - - /** - * @param range the range to set - */ - public void setRange(Range range) { - this.range = range; - } - - /** - * @return the passId - */ - public int getPassId() { - return passId; - } - - /** - * @param passId the passId to set - */ - public void setPassId(int passId) { - this.passId = passId; - } - - /** - * @return the localBarrier - */ - public CyclicBarrier getLocalBarrier() { - return localBarrier; - } - - /** - * @param localBarrier the localBarrier to set - */ - public void setLocalBarrier(CyclicBarrier localBarrier) { - this.localBarrier = localBarrier; - } - } - - /** - * Determine the globalId of an executing kernel. - *

      - * The kernel implementation uses the globalId to determine which of the executing kernels (in the global domain space) this invocation is expected to deal with. - *

      - * For example in a SquareKernel implementation: - *

      - *

      -    *     class SquareKernel extends Kernel{
      -    *         private int values[];
      -    *         private int squares[];
      -    *         public SquareKernel(int values[]){
      -    *            this.values = values;
      -    *            squares = new int[values.length];
      -    *         }
      -    *         public void run() {
      -    *             int gid = getGlobalID();
      -    *             squares[gid] = values[gid]*values[gid];
      -    *         }
      -    *         public int[] getSquares(){
      -    *             return(squares);
      -    *         }
      -    *     }
      -    * 
      - *

      - * Each invocation of SquareKernel.run() retrieves it's globalId by calling getGlobalId(), and then computes the value of square[gid] for a given value of value[gid]. - *

      - * @return The globalId for the Kernel being executed - * - * @see #getLocalId() - * @see #getGroupId() - * @see #getGlobalSize() - * @see #getNumGroups() - * @see #getLocalSize() - */ - - @OpenCLDelegate - protected final int getGlobalId() { - return getGlobalId(0); - } - - @OpenCLDelegate - protected final int getGlobalId(int _dim) { - return kernelState.getGlobalIds()[_dim]; - } - - /* - @OpenCLDelegate protected final int getGlobalX() { - return (getGlobalId(0)); - } - - @OpenCLDelegate protected final int getGlobalY() { - return (getGlobalId(1)); - } - - @OpenCLDelegate protected final int getGlobalZ() { - return (getGlobalId(2)); - } - */ - /** - * Determine the groupId of an executing kernel. - *

      - * When a Kernel.execute(int globalSize) is invoked for a particular kernel, the runtime will break the work into various 'groups'. - *

      - * A kernel can use getGroupId() to determine which group a kernel is currently - * dispatched to - *

      - * The following code would capture the groupId for each kernel and map it against globalId. - *

      -    *     final int[] groupIds = new int[1024];
      -    *     Kernel kernel = new Kernel(){
      -    *         public void run() {
      -    *             int gid = getGlobalId();
      -    *             groupIds[gid] = getGroupId();
      -    *         }
      -    *     };
      -    *     kernel.execute(groupIds.length);
      -    *     for (int i=0; i< values.length; i++){
      -    *        System.out.printf("%4d %4d\n", i, groupIds[i]);
      -    *     } 
      -    * 
      - * - * @see #getLocalId() - * @see #getGlobalId() - * @see #getGlobalSize() - * @see #getNumGroups() - * @see #getLocalSize() - * - * @return The groupId for this Kernel being executed - */ - @OpenCLDelegate - protected final int getGroupId() { - return getGroupId(0); - } - - @OpenCLDelegate - protected final int getGroupId(int _dim) { - return kernelState.getGroupIds()[_dim]; - } - - /* - @OpenCLDelegate protected final int getGroupX() { - return (getGroupId(0)); - } - - @OpenCLDelegate protected final int getGroupY() { - return (getGroupId(1)); - } - - @OpenCLDelegate protected final int getGroupZ() { - return (getGroupId(2)); - } - */ - /** - * Determine the passId of an executing kernel. - *

      - * When a Kernel.execute(int globalSize, int passes) is invoked for a particular kernel, the runtime will break the work into various 'groups'. - *

      - * A kernel can use getPassId() to determine which pass we are in. This is ideal for 'reduce' type phases - * - * @see #getLocalId() - * @see #getGlobalId() - * @see #getGlobalSize() - * @see #getNumGroups() - * @see #getLocalSize() - * - * @return The groupId for this Kernel being executed - */ - @OpenCLDelegate - protected final int getPassId() { - return kernelState.getPassId(); - } - - /** - * Determine the local id of an executing kernel. - *

      - * When a Kernel.execute(int globalSize) is invoked for a particular kernel, the runtime will break the work into - * various 'groups'. - * getLocalId() can be used to determine the relative id of the current kernel within a specific group. - *

      - * The following code would capture the groupId for each kernel and map it against globalId. - *

      -    *     final int[] localIds = new int[1024];
      -    *     Kernel kernel = new Kernel(){
      -    *         public void run() {
      -    *             int gid = getGlobalId();
      -    *             localIds[gid] = getLocalId();
      -    *         }
      -    *     };
      -    *     kernel.execute(localIds.length);
      -    *     for (int i=0; i< values.length; i++){
      -    *        System.out.printf("%4d %4d\n", i, localIds[i]);
      -    *     } 
      -    * 
      - * - * @see #getGroupId() - * @see #getGlobalId() - * @see #getGlobalSize() - * @see #getNumGroups() - * @see #getLocalSize() - * - * @return The local id for this Kernel being executed - */ - @OpenCLDelegate - protected final int getLocalId() { - return getLocalId(0); - } - - @OpenCLDelegate - protected final int getLocalId(int _dim) { - return kernelState.getLocalIds()[_dim]; - } - - /* - @OpenCLDelegate protected final int getLocalX() { - return (getLocalId(0)); - } - - @OpenCLDelegate protected final int getLocalY() { - return (getLocalId(1)); - } - - @OpenCLDelegate protected final int getLocalZ() { - return (getLocalId(2)); - } - */ - /** - * Determine the size of the group that an executing kernel is a member of. - *

      - * When a Kernel.execute(int globalSize) is invoked for a particular kernel, the runtime will break the work into - * various 'groups'. getLocalSize() allows a kernel to determine the size of the current group. - *

      - * Note groups may not all be the same size. In particular, if (global size)%(# of compute devices)!=0, the runtime can choose to dispatch kernels to - * groups with differing sizes. - * - * @see #getGroupId() - * @see #getGlobalId() - * @see #getGlobalSize() - * @see #getNumGroups() - * @see #getLocalSize() - * - * @return The size of the currently executing group. - */ - @OpenCLDelegate - protected final int getLocalSize() { - return kernelState.getRange().getLocalSize(0); - } - - @OpenCLDelegate - protected final int getLocalSize(int _dim) { - return kernelState.getRange().getLocalSize(_dim); - } - - /* - @OpenCLDelegate protected final int getLocalWidth() { - return (range.getLocalSize(0)); - } - - @OpenCLDelegate protected final int getLocalHeight() { - return (range.getLocalSize(1)); - } - - @OpenCLDelegate protected final int getLocalDepth() { - return (range.getLocalSize(2)); - } - */ - /** - * Determine the value that was passed to Kernel.execute(int globalSize) method. - * - * @see #getGroupId() - * @see #getGlobalId() - * @see #getNumGroups() - * @see #getLocalSize() - * - * @return The value passed to Kernel.execute(int globalSize) causing the current execution. - */ - @OpenCLDelegate - protected final int getGlobalSize() { - return kernelState.getRange().getGlobalSize(0); - } - - @OpenCLDelegate - protected final int getGlobalSize(int _dim) { - return kernelState.getRange().getGlobalSize(_dim); - } - - /* - @OpenCLDelegate protected final int getGlobalWidth() { - return (range.getGlobalSize(0)); - } - - @OpenCLDelegate protected final int getGlobalHeight() { - return (range.getGlobalSize(1)); - } - - @OpenCLDelegate protected final int getGlobalDepth() { - return (range.getGlobalSize(2)); - } - */ - /** - * Determine the number of groups that will be used to execute a kernel - *

      - * When Kernel.execute(int globalSize) is invoked, the runtime will split the work into - * multiple 'groups'. getNumGroups() returns the total number of groups that will be used. - * - * @see #getGroupId() - * @see #getGlobalId() - * @see #getGlobalSize() - * @see #getNumGroups() - * @see #getLocalSize() - * - * @return The number of groups that kernels will be dispatched into. - */ - @OpenCLDelegate - protected final int getNumGroups() { - return kernelState.getRange().getNumGroups(0); - } - - @OpenCLDelegate - protected final int getNumGroups(int _dim) { - return kernelState.getRange().getNumGroups(_dim); - } - - /* - @OpenCLDelegate protected final int getNumGroupsWidth() { - return (range.getGroups(0)); - } - - @OpenCLDelegate protected final int getNumGroupsHeight() { - return (range.getGroups(1)); - } - - @OpenCLDelegate protected final int getNumGroupsDepth() { - return (range.getGroups(2)); - } - */ - /** - * The entry point of a kernel. - * - *

      - * Every kernel must override this method. - */ - public abstract void run(); - - /** - * When using a Java Thread Pool Aparapi uses clone to copy the initial instance to each thread. - * - *

      - * If you choose to override clone() you are responsible for delegating to super.clone(); - */ - @Override - public Kernel clone() { - try { - final Kernel worker = (Kernel) super.clone(); - - // We need to be careful to also clone the KernelState - worker.kernelState = worker.new KernelState(kernelState); // Qualified copy constructor - - worker.kernelState.setGroupIds(new int[] { - 0, - 0, - 0 - }); - - worker.kernelState.setLocalIds(new int[] { - 0, - 0, - 0 - }); - - worker.kernelState.setGlobalIds(new int[] { - 0, - 0, - 0 - }); - - return worker; - } catch (final CloneNotSupportedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - return (null); - } - } - - /** - * Delegates to either {@link java.lang.Math#acos(double)} (Java) or acos(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param a value to delegate to {@link java.lang.Math#acos(double)}/acos(float) - * @return {@link java.lang.Math#acos(double)} casted to float/acos(float) - * - * @see java.lang.Math#acos(double) - * @see acos(float) - */ - @OpenCLMapping(mapTo = "acos") - protected float acos(float a) { - return (float) Math.acos(a); - } - - /** - * Delegates to either {@link java.lang.Math#acos(double)} (Java) or acos(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param a value to delegate to {@link java.lang.Math#acos(double)}/acos(double) - * @return {@link java.lang.Math#acos(double)}/acos(double) - * - * @see java.lang.Math#acos(double) - * @see acos(double) - */ - @OpenCLMapping(mapTo = "acos") - protected double acos(double a) { - return Math.acos(a); - } - - /** - * Delegates to either {@link java.lang.Math#asin(double)} (Java) or asin(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#asin(double)}/asin(float) - * @return {@link java.lang.Math#asin(double)} casted to float/asin(float) - * - * @see java.lang.Math#asin(double) - * @see asin(float) - */ - @OpenCLMapping(mapTo = "asin") - protected float asin(float _f) { - return (float) Math.asin(_f); - } - - /** - * Delegates to either {@link java.lang.Math#asin(double)} (Java) or asin(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#asin(double)}/asin(double) - * @return {@link java.lang.Math#asin(double)}/asin(double) - * - * @see java.lang.Math#asin(double) - * @see asin(double) - */ - @OpenCLMapping(mapTo = "asin") - protected double asin(double _d) { - return Math.asin(_d); - } - - /** - * Delegates to either {@link java.lang.Math#atan(double)} (Java) or atan(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#atan(double)}/atan(float) - * @return {@link java.lang.Math#atan(double)} casted to float/atan(float) - * - * @see java.lang.Math#atan(double) - * @see atan(float) - */ - @OpenCLMapping(mapTo = "atan") - protected float atan(float _f) { - return (float) Math.atan(_f); - } - - /** - * Delegates to either {@link java.lang.Math#atan(double)} (Java) or atan(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#atan(double)}/atan(double) - * @return {@link java.lang.Math#atan(double)}/atan(double) - * - * @see java.lang.Math#atan(double) - * @see atan(double) - */ - @OpenCLMapping(mapTo = "atan") - protected double atan(double _d) { - return Math.atan(_d); - } - - /** - * Delegates to either {@link java.lang.Math#atan2(double, double)} (Java) or atan2(float, float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f1 value to delegate to first argument of {@link java.lang.Math#atan2(double, double)}/atan2(float, float) - * @param _f2 value to delegate to second argument of {@link java.lang.Math#atan2(double, double)}/atan2(float, float) - * @return {@link java.lang.Math#atan2(double, double)} casted to float/atan2(float, float) - * - * @see java.lang.Math#atan2(double, double) - * @see atan2(float, float) - */ - @OpenCLMapping(mapTo = "atan2") - protected float atan2(float _f1, float _f2) { - return (float) Math.atan2(_f1, _f2); - } - - /** - * Delegates to either {@link java.lang.Math#atan2(double, double)} (Java) or atan2(double, double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d1 value to delegate to first argument of {@link java.lang.Math#atan2(double, double)}/atan2(double, double) - * @param _d2 value to delegate to second argument of {@link java.lang.Math#atan2(double, double)}/atan2(double, double) - * @return {@link java.lang.Math#atan2(double, double)}/atan2(double, double) - * - * @see java.lang.Math#atan2(double, double) - * @see atan2(double, double) - */ - @OpenCLMapping(mapTo = "atan2") - protected double atan2(double _d1, double _d2) { - return Math.atan2(_d1, _d2); - } - - /** - * Delegates to either {@link java.lang.Math#ceil(double)} (Java) or ceil(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#ceil(double)}/ceil(float) - * @return {@link java.lang.Math#ceil(double)} casted to float/ceil(float) - * - * @see java.lang.Math#ceil(double) - * @see ceil(float) - */ - @OpenCLMapping(mapTo = "ceil") - protected float ceil(float _f) { - return (float) Math.ceil(_f); - } - - /** - * Delegates to either {@link java.lang.Math#ceil(double)} (Java) or ceil(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#ceil(double)}/ceil(double) - * @return {@link java.lang.Math#ceil(double)}/ceil(double) - * - * @see java.lang.Math#ceil(double) - * @see ceil(double) - */ - @OpenCLMapping(mapTo = "ceil") - protected double ceil(double _d) { - return Math.ceil(_d); - } - - /** - * Delegates to either {@link java.lang.Math#cos(double)} (Java) or cos(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#cos(double)}/cos(float) - * @return {@link java.lang.Math#cos(double)} casted to float/cos(float) - * - * @see java.lang.Math#cos(double) - * @see cos(float) - */ - @OpenCLMapping(mapTo = "cos") - protected float cos(float _f) { - return (float) Math.cos(_f); - } - - /** - * Delegates to either {@link java.lang.Math#cos(double)} (Java) or cos(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#cos(double)}/cos(double) - * @return {@link java.lang.Math#cos(double)}/cos(double) - * - * @see java.lang.Math#cos(double) - * @see cos(double) - */ - @OpenCLMapping(mapTo = "cos") - protected double cos(double _d) { - return Math.cos(_d); - } - - /** - * Delegates to either {@link java.lang.Math#exp(double)} (Java) or exp(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#exp(double)}/exp(float) - * @return {@link java.lang.Math#exp(double)} casted to float/exp(float) - * - * @see java.lang.Math#exp(double) - * @see exp(float) - */ - @OpenCLMapping(mapTo = "exp") - protected float exp(float _f) { - return (float) Math.exp(_f); - } - - /** - * Delegates to either {@link java.lang.Math#exp(double)} (Java) or exp(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#exp(double)}/exp(double) - * @return {@link java.lang.Math#exp(double)}/exp(double) - * - * @see java.lang.Math#exp(double) - * @see exp(double) - */ - @OpenCLMapping(mapTo = "exp") - protected double exp(double _d) { - return Math.exp(_d); - } - - /** - * Delegates to either {@link java.lang.Math#abs(float)} (Java) or fabs(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#abs(float)}/fabs(float) - * @return {@link java.lang.Math#abs(float)}/fabs(float) - * - * @see java.lang.Math#abs(float) - * @see fabs(float) - */ - @OpenCLMapping(mapTo = "fabs") - protected float abs(float _f) { - return Math.abs(_f); - } - - /** - * Delegates to either {@link java.lang.Math#abs(double)} (Java) or fabs(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#abs(double)}/fabs(double) - * @return {@link java.lang.Math#abs(double)}/fabs(double) - * - * @see java.lang.Math#abs(double) - * @see fabs(double) - */ - @OpenCLMapping(mapTo = "fabs") - protected double abs(double _d) { - return Math.abs(_d); - } - - /** - * Delegates to either {@link java.lang.Math#abs(int)} (Java) or abs(int) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param n value to delegate to {@link java.lang.Math#abs(int)}/abs(int) - * @return {@link java.lang.Math#abs(int)}/abs(int) - * - * @see java.lang.Math#abs(int) - * @see abs(int) - */ - @OpenCLMapping(mapTo = "abs") - protected int abs(int n) { - return Math.abs(n); - } - - /** - * Delegates to either {@link java.lang.Math#abs(long)} (Java) or abs(long) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param n value to delegate to {@link java.lang.Math#abs(long)}/abs(long) - * @return {@link java.lang.Math#abs(long)}/abs(long) - * - * @see java.lang.Math#abs(long) - * @see abs(long) - */ - @OpenCLMapping(mapTo = "abs") - protected long abs(long n) { - return Math.abs(n); - } - - /** - * Delegates to either {@link java.lang.Math#floor(double)} (Java) or floor(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#floor(double)}/floor(float) - * @return {@link java.lang.Math#floor(double)} casted to float/floor(float) - * - * @see java.lang.Math#floor(double) - * @see floor(float) - */ - @OpenCLMapping(mapTo = "floor") - protected float floor(float _f) { - return (float) Math.floor(_f); - } - - /** - * Delegates to either {@link java.lang.Math#floor(double)} (Java) or floor(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#floor(double)}/floor(double) - * @return {@link java.lang.Math#floor(double)}/floor(double) - * - * @see java.lang.Math#floor(double) - * @see floor(double) - */ - @OpenCLMapping(mapTo = "floor") - protected double floor(double _d) { - return Math.floor(_d); - } - - /** - * Delegates to either {@link java.lang.Math#max(float, float)} (Java) or fmax(float, float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f1 value to delegate to first argument of {@link java.lang.Math#max(float, float)}/fmax(float, float) - * @param _f2 value to delegate to second argument of {@link java.lang.Math#max(float, float)}/fmax(float, float) - * @return {@link java.lang.Math#max(float, float)}/fmax(float, float) - * - * @see java.lang.Math#max(float, float) - * @see fmax(float, float) - */ - @OpenCLMapping(mapTo = "fmax") - protected float max(float _f1, float _f2) { - return Math.max(_f1, _f2); - } - - /** - * Delegates to either {@link java.lang.Math#max(double, double)} (Java) or fmax(double, double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d1 value to delegate to first argument of {@link java.lang.Math#max(double, double)}/fmax(double, double) - * @param _d2 value to delegate to second argument of {@link java.lang.Math#max(double, double)}/fmax(double, double) - * @return {@link java.lang.Math#max(double, double)}/fmax(double, double) - * - * @see java.lang.Math#max(double, double) - * @see fmax(double, double) - */ - @OpenCLMapping(mapTo = "fmax") - protected double max(double _d1, double _d2) { - return Math.max(_d1, _d2); - } - - /** - * Delegates to either {@link java.lang.Math#max(int, int)} (Java) or max(int, int) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param n1 value to delegate to {@link java.lang.Math#max(int, int)}/max(int, int) - * @param n2 value to delegate to {@link java.lang.Math#max(int, int)}/max(int, int) - * @return {@link java.lang.Math#max(int, int)}/max(int, int) - * - * @see java.lang.Math#max(int, int) - * @see max(int, int) - */ - @OpenCLMapping(mapTo = "max") - protected int max(int n1, int n2) { - return Math.max(n1, n2); - } - - /** - * Delegates to either {@link java.lang.Math#max(long, long)} (Java) or max(long, long) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param n1 value to delegate to first argument of {@link java.lang.Math#max(long, long)}/max(long, long) - * @param n2 value to delegate to second argument of {@link java.lang.Math#max(long, long)}/max(long, long) - * @return {@link java.lang.Math#max(long, long)}/max(long, long) - * - * @see java.lang.Math#max(long, long) - * @see max(long, long) - */ - @OpenCLMapping(mapTo = "max") - protected long max(long n1, long n2) { - return Math.max(n1, n2); - } - - /** - * Delegates to either {@link java.lang.Math#min(float, float)} (Java) or fmin(float, float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f1 value to delegate to first argument of {@link java.lang.Math#min(float, float)}/fmin(float, float) - * @param _f2 value to delegate to second argument of {@link java.lang.Math#min(float, float)}/fmin(float, float) - * @return {@link java.lang.Math#min(float, float)}/fmin(float, float) - * - * @see java.lang.Math#min(float, float) - * @see fmin(float, float) - */ - @OpenCLMapping(mapTo = "fmin") - protected float min(float _f1, float _f2) { - return Math.min(_f1, _f2); - } - - /** - * Delegates to either {@link java.lang.Math#min(double, double)} (Java) or fmin(double, double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d1 value to delegate to first argument of {@link java.lang.Math#min(double, double)}/fmin(double, double) - * @param _d2 value to delegate to second argument of {@link java.lang.Math#min(double, double)}/fmin(double, double) - * @return {@link java.lang.Math#min(double, double)}/fmin(double, double) - * - * @see java.lang.Math#min(double, double) - * @see fmin(double, double) - */ - @OpenCLMapping(mapTo = "fmin") - protected double min(double _d1, double _d2) { - return Math.min(_d1, _d2); - } - - /** - * Delegates to either {@link java.lang.Math#min(int, int)} (Java) or min(int, int) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param n1 value to delegate to first argument of {@link java.lang.Math#min(int, int)}/min(int, int) - * @param n2 value to delegate to second argument of {@link java.lang.Math#min(int, int)}/min(int, int) - * @return {@link java.lang.Math#min(int, int)}/min(int, int) - * - * @see java.lang.Math#min(int, int) - * @see min(int, int) - */ - @OpenCLMapping(mapTo = "min") - protected int min(int n1, int n2) { - return Math.min(n1, n2); - } - - /** - * Delegates to either {@link java.lang.Math#min(long, long)} (Java) or min(long, long) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param n1 value to delegate to first argument of {@link java.lang.Math#min(long, long)}/min(long, long) - * @param n2 value to delegate to second argument of {@link java.lang.Math#min(long, long)}/min(long, long) - * @return {@link java.lang.Math#min(long, long)}/min(long, long) - * - * @see java.lang.Math#min(long, long) - * @see min(long, long) - */ - @OpenCLMapping(mapTo = "min") - protected long min(long n1, long n2) { - return Math.min(n1, n2); - } - - /** - * Delegates to either {@link java.lang.Math#log(double)} (Java) or log(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#log(double)}/log(float) - * @return {@link java.lang.Math#log(double)} casted to float/log(float) - * - * @see java.lang.Math#log(double) - * @see log(float) - */ - @OpenCLMapping(mapTo = "log") - protected float log(float _f) { - return (float) Math.log(_f); - } - - /** - * Delegates to either {@link java.lang.Math#log(double)} (Java) or log(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#log(double)}/log(double) - * @return {@link java.lang.Math#log(double)}/log(double) - * - * @see java.lang.Math#log(double) - * @see log(double) - */ - @OpenCLMapping(mapTo = "log") - protected double log(double _d) { - return Math.log(_d); - } - - /** - * Delegates to either {@link java.lang.Math#pow(double, double)} (Java) or pow(float, float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f1 value to delegate to first argument of {@link java.lang.Math#pow(double, double)}/pow(float, float) - * @param _f2 value to delegate to second argument of {@link java.lang.Math#pow(double, double)}/pow(float, float) - * @return {@link java.lang.Math#pow(double, double)} casted to float/pow(float, float) - * - * @see java.lang.Math#pow(double, double) - * @see pow(float, float) - */ - @OpenCLMapping(mapTo = "pow") - protected float pow(float _f1, float _f2) { - return (float) Math.pow(_f1, _f2); - } - - /** - * Delegates to either {@link java.lang.Math#pow(double, double)} (Java) or pow(double, double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d1 value to delegate to first argument of {@link java.lang.Math#pow(double, double)}/pow(double, double) - * @param _d2 value to delegate to second argument of {@link java.lang.Math#pow(double, double)}/pow(double, double) - * @return {@link java.lang.Math#pow(double, double)}/pow(double, double) - * - * @see java.lang.Math#pow(double, double) - * @see pow(double, double) - */ - @OpenCLMapping(mapTo = "pow") - protected double pow(double _d1, double _d2) { - return Math.pow(_d1, _d2); - } - - /** - * Delegates to either {@link java.lang.Math#IEEEremainder(double, double)} (Java) or remainder(float, float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f1 value to delegate to first argument of {@link java.lang.Math#IEEEremainder(double, double)}/remainder(float, float) - * @param _f2 value to delegate to second argument of {@link java.lang.Math#IEEEremainder(double, double)}/remainder(float, float) - * @return {@link java.lang.Math#IEEEremainder(double, double)} casted to float/remainder(float, float) - * - * @see java.lang.Math#IEEEremainder(double, double) - * @see remainder(float, float) - */ - @OpenCLMapping(mapTo = "remainder") - protected float IEEEremainder(float _f1, float _f2) { - return (float) Math.IEEEremainder(_f1, _f2); - } - - /** - * Delegates to either {@link java.lang.Math#IEEEremainder(double, double)} (Java) or remainder(double, double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d1 value to delegate to first argument of {@link java.lang.Math#IEEEremainder(double, double)}/remainder(double, double) - * @param _d2 value to delegate to second argument of {@link java.lang.Math#IEEEremainder(double, double)}/remainder(double, double) - * @return {@link java.lang.Math#IEEEremainder(double, double)}/remainder(double, double) - * - * @see java.lang.Math#IEEEremainder(double, double) - * @see remainder(double, double) - */ - @OpenCLMapping(mapTo = "remainder") - protected double IEEEremainder(double _d1, double _d2) { - return Math.IEEEremainder(_d1, _d2); - } - - /** - * Delegates to either {@link java.lang.Math#toRadians(double)} (Java) or radians(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#toRadians(double)}/radians(float) - * @return {@link java.lang.Math#toRadians(double)} casted to float/radians(float) - * - * @see java.lang.Math#toRadians(double) - * @see radians(float) - */ - @OpenCLMapping(mapTo = "radians") - protected float toRadians(float _f) { - return (float) Math.toRadians(_f); - } - - /** - * Delegates to either {@link java.lang.Math#toRadians(double)} (Java) or radians(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#toRadians(double)}/radians(double) - * @return {@link java.lang.Math#toRadians(double)}/radians(double) - * - * @see java.lang.Math#toRadians(double) - * @see radians(double) - */ - @OpenCLMapping(mapTo = "radians") - protected double toRadians(double _d) { - return Math.toRadians(_d); - } - - /** - * Delegates to either {@link java.lang.Math#toDegrees(double)} (Java) or degrees(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#toDegrees(double)}/degrees(float) - * @return {@link java.lang.Math#toDegrees(double)} casted to float/degrees(float) - * - * @see java.lang.Math#toDegrees(double) - * @see degrees(float) - */ - @OpenCLMapping(mapTo = "degrees") - protected float toDegrees(float _f) { - return (float) Math.toDegrees(_f); - } - - /** - * Delegates to either {@link java.lang.Math#toDegrees(double)} (Java) or degrees(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#toDegrees(double)}/degrees(double) - * @return {@link java.lang.Math#toDegrees(double)}/degrees(double) - * - * @see java.lang.Math#toDegrees(double) - * @see degrees(double) - */ - @OpenCLMapping(mapTo = "degrees") - protected double toDegrees(double _d) { - return Math.toDegrees(_d); - } - - /** - * Delegates to either {@link java.lang.Math#rint(double)} (Java) or rint(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#rint(double)}/rint(float) - * @return {@link java.lang.Math#rint(double)} casted to float/rint(float) - * - * @see java.lang.Math#rint(double) - * @see rint(float) - */ - @OpenCLMapping(mapTo = "rint") - protected float rint(float _f) { - return (float) Math.rint(_f); - } - - /** - * Delegates to either {@link java.lang.Math#rint(double)} (Java) or rint(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#rint(double)}/rint(double) - * @return {@link java.lang.Math#rint(double)}/rint(double) - * - * @see java.lang.Math#rint(double) - * @see rint(double) - */ - @OpenCLMapping(mapTo = "rint") - protected double rint(double _d) { - return Math.rint(_d); - } - - /** - * Delegates to either {@link java.lang.Math#round(float)} (Java) or round(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#round(float)}/round(float) - * @return {@link java.lang.Math#round(float)}/round(float) - * - * @see java.lang.Math#round(float) - * @see round(float) - */ - @OpenCLMapping(mapTo = "round") - protected int round(float _f) { - return Math.round(_f); - } - - /** - * Delegates to either {@link java.lang.Math#round(double)} (Java) or round(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#round(double)}/round(double) - * @return {@link java.lang.Math#round(double)}/round(double) - * - * @see java.lang.Math#round(double) - * @see round(double) - */ - @OpenCLMapping(mapTo = "round") - protected long round(double _d) { - return Math.round(_d); - } - - /** - * Delegates to either {@link java.lang.Math#sin(double)} (Java) or sin(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#sin(double)}/sin(float) - * @return {@link java.lang.Math#sin(double)} casted to float/sin(float) - * - * @see java.lang.Math#sin(double) - * @see sin(float) - */ - @OpenCLMapping(mapTo = "sin") - protected float sin(float _f) { - return (float) Math.sin(_f); - } - - /** - * Delegates to either {@link java.lang.Math#sin(double)} (Java) or sin(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#sin(double)}/sin(double) - * @return {@link java.lang.Math#sin(double)}/sin(double) - * - * @see java.lang.Math#sin(double) - * @see sin(double) - */ - @OpenCLMapping(mapTo = "sin") - protected double sin(double _d) { - return Math.sin(_d); - } - - /** - * Delegates to either {@link java.lang.Math#sqrt(double)} (Java) or sqrt(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#sqrt(double)}/sqrt(float) - * @return {@link java.lang.Math#sqrt(double)} casted to float/sqrt(float) - * - * @see java.lang.Math#sqrt(double) - * @see sqrt(float) - */ - @OpenCLMapping(mapTo = "sqrt") - protected float sqrt(float _f) { - return (float) Math.sqrt(_f); - } - - /** - * Delegates to either {@link java.lang.Math#sqrt(double)} (Java) or sqrt(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#sqrt(double)}/sqrt(double) - * @return {@link java.lang.Math#sqrt(double)}/sqrt(double) - * - * @see java.lang.Math#sqrt(double) - * @see sqrt(double) - */ - @OpenCLMapping(mapTo = "sqrt") - protected double sqrt(double _d) { - return Math.sqrt(_d); - } - - /** - * Delegates to either {@link java.lang.Math#tan(double)} (Java) or tan(float) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#tan(double)}/tan(float) - * @return {@link java.lang.Math#tan(double)} casted to float/tan(float) - * - * @see java.lang.Math#tan(double) - * @see tan(float) - */ - @OpenCLMapping(mapTo = "tan") - protected float tan(float _f) { - return (float) Math.tan(_f); - } - - /** - * Delegates to either {@link java.lang.Math#tan(double)} (Java) or tan(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#tan(double)}/tan(double) - * @return {@link java.lang.Math#tan(double)}/tan(double) - * - * @see java.lang.Math#tan(double) - * @see tan(double) - */ - @OpenCLMapping(mapTo = "tan") - protected double tan(double _d) { - return Math.tan(_d); - } - - // the following rsqrt and native_sqrt and native_rsqrt don't exist in java Math - // but added them here for nbody testing, not sure if we want to expose them - /** - * Computes inverse square root using {@link java.lang.Math#sqrt(double)} (Java) or delegates to rsqrt(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _f value to delegate to {@link java.lang.Math#sqrt(double)}/rsqrt(double) - * @return ( 1.0f / {@link java.lang.Math#sqrt(double)} casted to float )/rsqrt(double) - * - * @see java.lang.Math#sqrt(double) - * @see rsqrt(double) - */ - @OpenCLMapping(mapTo = "rsqrt") - protected float rsqrt(float _f) { - return (1.0f / (float) Math.sqrt(_f)); - } - - /** - * Computes inverse square root using {@link java.lang.Math#sqrt(double)} (Java) or delegates to rsqrt(double) (OpenCL). - * - * User should note the differences in precision between Java and OpenCL's implementation of arithmetic functions to determine whether the difference in precision is acceptable. - * - * @param _d value to delegate to {@link java.lang.Math#sqrt(double)}/rsqrt(double) - * @return ( 1.0f / {@link java.lang.Math#sqrt(double)} ) /rsqrt(double) - * - * @see java.lang.Math#sqrt(double) - * @see rsqrt(double) - */ - @OpenCLMapping(mapTo = "rsqrt") - protected double rsqrt(double _d) { - return (1.0 / Math.sqrt(_d)); - } - - @OpenCLMapping(mapTo = "native_sqrt") - private float native_sqrt(float _f) { - int j = Float.floatToIntBits(_f); - j = ((1 << 29) + (j >> 1)) - (1 << 22) - 0x4c00; - return (Float.intBitsToFloat(j)); - // could add more precision using one iteration of newton's method, use the following - } - - @OpenCLMapping(mapTo = "native_rsqrt") - private float native_rsqrt(float _f) { - int j = Float.floatToIntBits(_f); - j = 0x5f3759df - (j >> 1); - final float x = (Float.intBitsToFloat(j)); - return x; - // if want more precision via one iteration of newton's method, use the following - // float fhalf = 0.5f*_f; - // return (x *(1.5f - fhalf * x * x)); - } - - // Hacked from AtomicIntegerArray.getAndAdd(i, delta) - /** - * Atomically adds _delta value to _index element of array _arr (Java) or delegates to atomic_add(volatile int*, int) (OpenCL). - * - * - * @param _arr array for which an element value needs to be atomically incremented by _delta - * @param _index index of the _arr array that needs to be atomically incremented by _delta - * @param _delta value by which _index element of _arr array needs to be atomically incremented - * @return previous value of _index element of _arr array - * - * @see atomic_add(volatile int*, int) - */ - @OpenCLMapping(atomic32 = true) - protected int atomicAdd(int[] _arr, int _index, int _delta) { - if (!Config.disableUnsafe) { - return UnsafeWrapper.atomicAdd(_arr, _index, _delta); - } else { - synchronized (_arr) { - final int previous = _arr[_index]; - _arr[_index] += _delta; - return previous; - } - } - } - - /** - * Wait for all kernels in the current group to rendezvous at this call before continuing execution. - * - * @annotion Experimental - */ - @OpenCLDelegate - @Experimental - protected final void localBarrier() { - try { - kernelState.getLocalBarrier().await(); - } catch (final InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final BrokenBarrierException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - /** - * Wait for all kernels in the current group to rendezvous at this call before continuing execution. - * - * - * Java version is identical to localBarrier() - * - * @annotion Experimental - * @deprecated - */ - @OpenCLDelegate - @Experimental - @Deprecated - protected final void globalBarrier() throws DeprecatedException { - throw new DeprecatedException( - "Kernel.globalBarrier() has been deprecated. It was based an incorrect understanding of OpenCL functionality."); - } - - public KernelState getKernelState() { - return kernelState; - } - - /** - * Determine the execution time of the previous Kernel.execute(range) call. - * - * Note that for the first call this will include the conversion time. - * - * @return The time spent executing the kernel (ms) - * - * @see #getConversionTime(); - * @see #getAccumulatedExecutionTime(); - * - */ - public synchronized long getExecutionTime() { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - return (kernelRunner.getExecutionTime()); - } - - /** - * Determine the total execution time of all previous Kernel.execute(range) calls. - * - * Note that this will include the initial conversion time. - * - * @return The total time spent executing the kernel (ms) - * - * @see #getExecutionTime(); - * @see #getConversionTime(); - * - */ - public synchronized long getAccumulatedExecutionTime() { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - return (kernelRunner.getAccumulatedExecutionTime()); - } - - /** - * Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call. - * @return The time spent preparing the kernel for execution using GPU - * - * @see #getExecutionTime(); - * @see #getAccumulatedExecutionTime(); - */ - public synchronized long getConversionTime() { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - return (kernelRunner.getConversionTime()); - } - - /** - * Start execution of _range kernels. - *

      - * When kernel.execute(globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * @param _range The number of Kernels that we would like to initiate. - * @returnThe Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(Range _range) { - return (execute(_range, 1)); - } - - /** - * Start execution of _range kernels. - *

      - * When kernel.execute(_range) is invoked, Aparapi will schedule the execution of _range kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * Since adding the new Range class this method offers backward compatibility and merely defers to return (execute(Range.create(_range), 1));. - * @param _range The number of Kernels that we would like to initiate. - * @returnThe Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(int _range) { - return (execute(Range.create(_range), 1)); - } - - /** - * Start execution of _passes iterations of _range kernels. - *

      - * When kernel.execute(_range, _passes) is invoked, Aparapi will schedule the execution of _reange kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * @param _passes The number of passes to make - * @return The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(Range _range, int _passes) { - return (execute("run", _range, _passes)); - } - - /** - * Start execution of _passes iterations over the _range of kernels. - *

      - * When kernel.execute(_range) is invoked, Aparapi will schedule the execution of _range kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * Since adding the new Range class this method offers backward compatibility and merely defers to return (execute(Range.create(_range), 1));. - * @param _range The number of Kernels that we would like to initiate. - * @returnThe Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(int _range, int _passes) { - return (execute(Range.create(_range), _passes)); - } - - /** - * Start execution of globalSize kernels for the given entrypoint. - *

      - * When kernel.execute("entrypoint", globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * @param _entry is the name of the method we wish to use as the entrypoint to the kernel - * @return The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(Entry _entry, Range _range) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - return (kernelRunner.execute(_entry, _range, 1)); - } - - /** - * Start execution of globalSize kernels for the given entrypoint. - *

      - * When kernel.execute("entrypoint", globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * @param _entrypoint is the name of the method we wish to use as the entrypoint to the kernel - * @return The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(String _entrypoint, Range _range) { - return (execute(_entrypoint, _range, 1)); - } - - /** - * Start execution of globalSize kernels for the given entrypoint. - *

      - * When kernel.execute("entrypoint", globalSize) is invoked, Aparapi will schedule the execution of globalSize kernels. If the execution mode is GPU then - * the kernels will execute as OpenCL code on the GPU device. Otherwise, if the mode is JTP, the kernels will execute as a pool of Java threads on the CPU. - *

      - * @param _entrypoint is the name of the method we wish to use as the entrypoint to the kernel - * @return The Kernel instance (this) so we can chain calls to put(arr).execute(range).get(arr) - * - */ - public synchronized Kernel execute(String _entrypoint, Range _range, int _passes) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - - } - - return (kernelRunner.execute(_entrypoint, _range, _passes)); - } - - /** - * Release any resources associated with this Kernel. - *

      - * When the execution mode is CPU or GPU, Aparapi stores some OpenCL resources in a data structure associated with the kernel instance. The - * dispose() method must be called to release these resources. - *

      - * If execute(int _globalSize) is called after dispose() is called the results are undefined. - */ - public synchronized void dispose() { - if (kernelRunner != null) { - kernelRunner.dispose(); - kernelRunner = null; - } - } - - /** - * Return the current execution mode. - * - * Before a Kernel executes, this return value will be the execution mode as determined by the setting of - * the EXECUTION_MODE enumeration. By default, this setting is either GPU - * if OpenCL is available on the target system, or JTP otherwise. This default setting can be - * changed by calling setExecutionMode(). - * - *

      - * After a Kernel executes, the return value will be the mode in which the Kernel actually executed. - * - * @return The current execution mode. - * - * @see #setExecutionMode(EXECUTION_MODE) - */ - public EXECUTION_MODE getExecutionMode() { - return (executionMode); - } - - /** - * Set the execution mode. - *

      - * This should be regarded as a request. The real mode will be determined at runtime based on the availability of OpenCL and the characteristics of the workload. - * - * @param _executionMode the requested execution mode. - * - * @see #getExecutionMode() - */ - public void setExecutionMode(EXECUTION_MODE _executionMode) { - executionMode = _executionMode; - } - - public void setFallbackExecutionMode() { - executionMode = EXECUTION_MODE.getFallbackExecutionMode(); - } - - final static Map typeToLetterMap = new HashMap(); - - static { - // only primitive types for now - typeToLetterMap.put("double", "D"); - typeToLetterMap.put("float", "F"); - typeToLetterMap.put("int", "I"); - typeToLetterMap.put("long", "J"); - typeToLetterMap.put("boolean", "Z"); - typeToLetterMap.put("byte", "B"); - typeToLetterMap.put("char", "C"); - typeToLetterMap.put("short", "S"); - typeToLetterMap.put("void", "V"); - } - - private static String descriptorToReturnTypeLetter(String desc) { - // find the letter after the closed parenthesis - return desc.substring(desc.lastIndexOf(')') + 1); - } - - private static String getReturnTypeLetter(Method meth) { - final Class retClass = meth.getReturnType(); - final String strRetClass = retClass.toString(); - final String mapping = typeToLetterMap.get(strRetClass); - // System.out.println("strRetClass = <" + strRetClass + ">, mapping = " + mapping); - return mapping; - } - - public static String getMappedMethodName(MethodReferenceEntry _methodReferenceEntry) { - String mappedName = null; - final String name = _methodReferenceEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - for (final Method kernelMethod : Kernel.class.getDeclaredMethods()) { - if (kernelMethod.isAnnotationPresent(OpenCLMapping.class)) { - // ultimately, need a way to constrain this based upon signature (to disambiguate abs(float) from abs(int); - // for Alpha, we will just disambiguate based on the return type - if (false) { - System.out.println("kernelMethod is ... " + kernelMethod.toGenericString()); - System.out.println("returnType = " + kernelMethod.getReturnType()); - System.out.println("returnTypeLetter = " + getReturnTypeLetter(kernelMethod)); - System.out.println("kernelMethod getName = " + kernelMethod.getName()); - System.out.println("methRefName = " + name + " descriptor = " - + _methodReferenceEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8()); - System.out - .println("descToReturnTypeLetter = " - + descriptorToReturnTypeLetter(_methodReferenceEntry.getNameAndTypeEntry().getDescriptorUTF8Entry() - .getUTF8())); - } - if (_methodReferenceEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(kernelMethod.getName()) - && descriptorToReturnTypeLetter(_methodReferenceEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8()) - .equals(getReturnTypeLetter(kernelMethod))) { - final OpenCLMapping annotation = kernelMethod.getAnnotation(OpenCLMapping.class); - final String mapTo = annotation.mapTo(); - if (!mapTo.equals("")) { - mappedName = mapTo; - // System.out.println("mapTo = " + mapTo); - } - } - } - } - // System.out.println("... in getMappedMethodName, returning = " + mappedName); - return (mappedName); - } - - public static boolean isMappedMethod(MethodReferenceEntry methodReferenceEntry) { - boolean isMapped = false; - for (final Method kernelMethod : Kernel.class.getDeclaredMethods()) { - if (kernelMethod.isAnnotationPresent(OpenCLMapping.class)) { - if (methodReferenceEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(kernelMethod.getName())) { - - // well they have the same name ;) - isMapped = true; - } - } - } - return (isMapped); - } - - public static boolean isOpenCLDelegateMethod(MethodReferenceEntry methodReferenceEntry) { - boolean isMapped = false; - for (final Method kernelMethod : Kernel.class.getDeclaredMethods()) { - if (kernelMethod.isAnnotationPresent(OpenCLDelegate.class)) { - if (methodReferenceEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(kernelMethod.getName())) { - - // well they have the same name ;) - isMapped = true; - } - } - } - return (isMapped); - } - - public static boolean usesAtomic32(MethodReferenceEntry methodReferenceEntry) { - for (final Method kernelMethod : Kernel.class.getDeclaredMethods()) { - if (kernelMethod.isAnnotationPresent(OpenCLMapping.class)) { - if (methodReferenceEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(kernelMethod.getName())) { - final OpenCLMapping annotation = kernelMethod.getAnnotation(OpenCLMapping.class); - return annotation.atomic32(); - } - } - } - return (false); - } - - // For alpha release atomic64 is not supported - public static boolean usesAtomic64(MethodReferenceEntry methodReferenceEntry) { - //for (java.lang.reflect.Method kernelMethod : Kernel.class.getDeclaredMethods()) { - // if (kernelMethod.isAnnotationPresent(Kernel.OpenCLMapping.class)) { - // if (methodReferenceEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(kernelMethod.getName())) { - // OpenCLMapping annotation = kernelMethod.getAnnotation(Kernel.OpenCLMapping.class); - // return annotation.atomic64(); - // } - // } - //} - return (false); - } - - // the flag useNullForLocalSize is useful for testing that what we compute for localSize is what OpenCL - // would also compute if we passed in null. In non-testing mode, we just call execute with the - // same localSize that we computed in getLocalSizeJNI. We don't want do publicize these of course. - // GRF we can't access this from test classes without exposing in in javadoc so I left the flag but made the test/set of the flag reflectively - boolean useNullForLocalSize = false; - - // Explicit memory management API's follow - - /** - * For dev purposes (we should remove this for production) allow us to define that this Kernel uses explicit memory management - * @param _explicit (true if we want explicit memory management) - */ - public void setExplicit(boolean _explicit) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.setExplicit(_explicit); - } - - /** - * For dev purposes (we should remove this for production) determine whether this Kernel uses explicit memory management - * @return (true if we kernel is using explicit memory management) - */ - public boolean isExplicit() { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - return (kernelRunner.isExplicit()); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(long[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(long[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(long[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(double[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(double[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(double[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(float[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(float[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(float[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(int[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(int[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(int[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(byte[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(byte[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(byte[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(char[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(char[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(char[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(boolean[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(boolean[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel put(boolean[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.put(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(long[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(long[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(long[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(double[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(double[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(double[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(float[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(float[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(float[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(int[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(int[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(int[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(byte[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(byte[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(byte[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(char[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(char[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(char[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(boolean[] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(boolean[][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Enqueue a request to return this buffer from the GPU. This method blocks until the array is available. - * @param array - * @return This kernel so that we can use the 'fluent' style API - */ - public Kernel get(boolean[][][] array) { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - kernelRunner.get(array); - return (this); - } - - /** - * Get the profiling information from the last successful call to Kernel.execute(). - * @return A list of ProfileInfo records - */ - public List getProfileInfo() { - if (kernelRunner == null) { - kernelRunner = new KernelRunner(this); - } - - return (kernelRunner.getProfileInfo()); - } - - private final LinkedHashSet executionModes = EXECUTION_MODE.getDefaultExecutionModes(); - - private Iterator currentMode = executionModes.iterator(); - - private EXECUTION_MODE executionMode = currentMode.next(); - - /** - * set possible fallback path for execution modes. - * for example setExecutionFallbackPath(GPU,CPU,JTP) will try to use the GPU - * if it fails it will fall back to OpenCL CPU and finally it will try JTP. - */ - public void addExecutionModes(EXECUTION_MODE... platforms) { - executionModes.addAll(Arrays.asList(platforms)); - currentMode = executionModes.iterator(); - executionMode = currentMode.next(); - } - - /** - * @return is there another execution path we can try - */ - public boolean hasNextExecutionMode() { - return currentMode.hasNext(); - } - - /** - * try the next execution path in the list if there aren't any more than give up - */ - public void tryNextExecutionMode() { - if (currentMode.hasNext()) { - executionMode = currentMode.next(); - } - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/ProfileInfo.java b/com.amd.aparapi/src/java/com/amd/aparapi/ProfileInfo.java deleted file mode 100644 index b30d9128..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/ProfileInfo.java +++ /dev/null @@ -1,123 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -public class ProfileInfo{ - - private enum TYPE { - R, - X, - W - }; // 0 = write, 1 = execute, 2 = read - - private final TYPE type; - - private final String label; - - private final long start; - - private final long end; - - private final long submit; - - private final long queued; - - /** - * Minimal constructor - * - * @param _label - * @param _type - * @param _start - * @param _end - * @param _submit - * @param _queued - */ - public ProfileInfo(String _label, int _type, long _start, long _end, long _submit, long _queued) { - type = TYPE.values()[_type]; - label = _label == null ? "exec()" : _label; - start = _start; - end = _end; - submit = _submit; - queued = _queued; - } - - public long getStart() { - return start; - } - - public long getEnd() { - return end; - } - - public long getSubmit() { - return submit; - } - - public long getQueued() { - return queued; - } - - public String getLabel() { - return (label); - } - - public TYPE getType() { - return (type); - } - - @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("ProfileInfo["); - sb.append(type); - sb.append(" '"); - sb.append(label); - sb.append("' start="); - sb.append(start); - sb.append(", end="); - sb.append(end); - sb.append(", submit="); - sb.append(submit); - sb.append(", queued="); - sb.append(queued); - sb.append(", duration="); - sb.append((end - start)); - sb.append("]"); - - return sb.toString(); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/Range.java b/com.amd.aparapi/src/java/com/amd/aparapi/Range.java deleted file mode 100644 index 5fb435a4..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/Range.java +++ /dev/null @@ -1,628 +0,0 @@ -package com.amd.aparapi; - -import java.util.Arrays; - -import com.amd.aparapi.device.Device; -import com.amd.aparapi.internal.jni.RangeJNI; - -/** - * - * A representation of 1, 2 or 3 dimensional range of execution. - * - * This class uses factory methods to allow one, two or three dimensional ranges to be created. - *
      - * For a Kernel operating over the linear range 0..1024 without a specified groups size we would create a one dimensional Range using - *

      Range.create(1024);
      - * To request the same linear range but with a groupSize of 64 (range must be a multiple of group size!) we would use - *
      Range.create(1024,64);
      - * To request a two dimensional range over a grid (0..width)x(0..height) where width==512 and height=256 we would use - *
      - * int width=512;
      - * int height=256;
      - * Range.create2D(width,height)
      - * 
      - * Again the above does not specify the group size. One will be chosen for you. If you want to specify the groupSize (say 16x8; 16 wide by 8 high) use - *
      - * int width=512;
      - * int height=256;
      - * int groupWidth=16;
      - * int groupHeight=8;
      - * Range.create2D(width, height, groupWidth, groupHeight);
      - * 
      - * Finally we can request a three dimensional range using - *
      - * int width=512;
      - * int height=256;
      - * int depth=8;
      - * Range.create3D(width, height, depth);
      - * 
      - * And can specify a group size using - *
      - *  int width=512;
      - *  int height=256;
      - *  int depth=8;
      - *  int groupWidth=8;
      - *  int groupHeight=4;
      - *  int groupDepth=2
      - *  Range.create3D(width, height, depth, groupWidth, groupHeight, groupDepth);
      - * 
      - */ -public class Range extends RangeJNI{ - - public static final int THREADS_PER_CORE = 16; - - public static final int MAX_OPENCL_GROUP_SIZE = 256; - - public static final int MAX_GROUP_SIZE = Math.max(Runtime.getRuntime().availableProcessors() * THREADS_PER_CORE, - MAX_OPENCL_GROUP_SIZE); - - private Device device = null; - - private int maxWorkGroupSize; - - private int[] maxWorkItemSize = new int[] { - MAX_GROUP_SIZE, - MAX_GROUP_SIZE, - MAX_GROUP_SIZE - }; - - /** - * Minimal constructor - * - * @param _device - * @param _dims - */ - public Range(Device _device, int _dims) { - device = _device; - dims = _dims; - - if (device != null) { - maxWorkItemSize = device.getMaxWorkItemSize(); - maxWorkGroupSize = device.getMaxWorkGroupSize(); - } else { - maxWorkGroupSize = MAX_GROUP_SIZE; - } - } - - /** - * Create a one dimensional range 0.._globalWidth which is processed in groups of size _localWidth. - *
      - * Note that for this range to be valid :
      _globalWidth > 0 && _localWidth > 0 && _localWidth < MAX_GROUP_SIZE && _globalWidth % _localWidth==0 - * - * @param _globalWidth the overall range we wish to process - * @param _localWidth the size of the group we wish to process. - * @return A new Range with the requested dimensions - */ - public static Range create(Device _device, int _globalWidth, int _localWidth) { - final Range range = new Range(_device, 1); - - range.setGlobalSize_0(_globalWidth); - range.setLocalSize_0(_localWidth); - - range.setValid((range.getLocalSize_0() > 0) && (range.getLocalSize_0() <= range.getMaxWorkItemSize()[0]) - && (range.getLocalSize_0() <= range.getMaxWorkGroupSize()) && ((range.getGlobalSize_0() % range.getLocalSize_0()) == 0)); - - return (range); - } - - /** - * Determine the set of factors for a given value. - * @param _value The value we wish to factorize. - * @param _max an upper bound on the value that can be chosen - * @return and array of factors of _value - */ - - private static int[] getFactors(int _value, int _max) { - final int factors[] = new int[MAX_GROUP_SIZE]; - int factorIdx = 0; - - for (int possibleFactor = 1; possibleFactor <= _max; possibleFactor++) { - if ((_value % possibleFactor) == 0) { - factors[factorIdx++] = possibleFactor; - } - } - - return (Arrays.copyOf(factors, factorIdx)); - } - - /** - * Create a one dimensional range 0.._globalWidth with an undefined group size. - *
      - * Note that for this range to be valid :-
      _globalWidth > 0 - *
      - * The groupsize will be chosen such that _localWidth > 0 && _localWidth < MAX_GROUP_SIZE && _globalWidth % _localWidth==0 is true - * - * We extract the factors of _globalWidth and choose the highest value. - * - * @param _globalWidth the overall range we wish to process - * @return A new Range with the requested dimensions - */ - public static Range create(Device _device, int _globalWidth) { - final Range withoutLocal = create(_device, _globalWidth, 1); - - if (withoutLocal.isValid()) { - withoutLocal.setLocalIsDerived(true); - final int[] factors = getFactors(withoutLocal.getGlobalSize_0(), withoutLocal.getMaxWorkItemSize()[0]); - - withoutLocal.setLocalSize_0(factors[factors.length - 1]); - - withoutLocal.setValid((withoutLocal.getLocalSize_0() > 0) - && (withoutLocal.getLocalSize_0() <= withoutLocal.getMaxWorkItemSize()[0]) - && (withoutLocal.getLocalSize_0() <= withoutLocal.getMaxWorkGroupSize()) - && ((withoutLocal.getGlobalSize_0() % withoutLocal.getLocalSize_0()) == 0)); - } - - return (withoutLocal); - } - - public static Range create(int _globalWidth, int _localWidth) { - final Range range = create(null, _globalWidth, _localWidth); - - return (range); - } - - public static Range create(int _globalWidth) { - final Range range = create(null, _globalWidth); - - return (range); - } - - /** - * Create a two dimensional range 0.._globalWidth x 0.._globalHeight using a group which is _localWidth x _localHeight in size. - *
      - * Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 && _localWidth>0 && _localHeight>0 && _localWidth*_localHeight < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0. - * - * @param _globalWidth the overall range we wish to process - * @return - */ - public static Range create2D(Device _device, int _globalWidth, int _globalHeight, int _localWidth, int _localHeight) { - final Range range = new Range(_device, 2); - - range.setGlobalSize_0(_globalWidth); - range.setLocalSize_0(_localWidth); - range.setGlobalSize_1(_globalHeight); - range.setLocalSize_1(_localHeight); - - range.setValid((range.getLocalSize_0() > 0) && (range.getLocalSize_1() > 0) - && (range.getLocalSize_0() <= range.getMaxWorkItemSize()[0]) - && (range.getLocalSize_1() <= range.getMaxWorkItemSize()[1]) - && ((range.getLocalSize_0() * range.getLocalSize_1()) <= range.getMaxWorkGroupSize()) - && ((range.getGlobalSize_0() % range.getLocalSize_0()) == 0) - && ((range.getGlobalSize_1() % range.getLocalSize_1()) == 0)); - - return (range); - } - - /** - * Create a two dimensional range 0.._globalWidth * 0.._globalHeight choosing suitable values for localWidth and localHeight. - *

      - * Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 && _localWidth>0 && _localHeight>0 && _localWidth*_localHeight < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0. - * - *

      - * To determine suitable values for _localWidth and _localHeight we extract the factors for _globalWidth and _globalHeight and then - * find the largest product ( <= MAX_GROUP_SIZE) with the lowest perimeter. - * - *

      - * For example for MAX_GROUP_SIZE of 16 we favor 4x4 over 1x16. - * - * @param _globalWidth the overall range we wish to process - * @return - */ - public static Range create2D(Device _device, int _globalWidth, int _globalHeight) { - final Range withoutLocal = create2D(_device, _globalWidth, _globalHeight, 1, 1); - - if (withoutLocal.isValid()) { - withoutLocal.setLocalIsDerived(true); - final int[] widthFactors = getFactors(_globalWidth, withoutLocal.getMaxWorkItemSize()[0]); - final int[] heightFactors = getFactors(_globalHeight, withoutLocal.getMaxWorkItemSize()[1]); - - withoutLocal.setLocalSize_0(1); - withoutLocal.setLocalSize_1(1); - int max = 1; - int perimeter = 0; - - for (final int w : widthFactors) { - for (final int h : heightFactors) { - final int size = w * h; - if (size > withoutLocal.getMaxWorkGroupSize()) { - break; - } - - if (size > max) { - max = size; - perimeter = w + h; - withoutLocal.setLocalSize_0(w); - withoutLocal.setLocalSize_1(h); - } else if (size == max) { - final int localPerimeter = w + h; - if (localPerimeter < perimeter) {// is this the shortest perimeter so far - perimeter = localPerimeter; - withoutLocal.setLocalSize_0(w); - withoutLocal.setLocalSize_1(h); - } - } - } - } - - withoutLocal.setValid((withoutLocal.getLocalSize_0() > 0) && (withoutLocal.getLocalSize_1() > 0) - && (withoutLocal.getLocalSize_0() <= withoutLocal.getMaxWorkItemSize()[0]) - && (withoutLocal.getLocalSize_1() <= withoutLocal.getMaxWorkItemSize()[1]) - && ((withoutLocal.getLocalSize_0() * withoutLocal.getLocalSize_1()) <= withoutLocal.getMaxWorkGroupSize()) - && ((withoutLocal.getGlobalSize_0() % withoutLocal.getLocalSize_0()) == 0) - && ((withoutLocal.getGlobalSize_1() % withoutLocal.getLocalSize_1()) == 0)); - } - - return (withoutLocal); - } - - public static Range create2D(int _globalWidth, int _globalHeight, int _localWidth, int _localHeight) { - final Range range = create2D(null, _globalWidth, _globalHeight, _localWidth, _localHeight); - - return (range); - } - - public static Range create2D(int _globalWidth, int _globalHeight) { - final Range range = create2D(null, _globalWidth, _globalHeight); - - return (range); - } - - /** - * Create a two dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - * in groups defined by localWidth * localHeight * localDepth. - *

      - * Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 _globalDepth >0 && _localWidth>0 && _localHeight>0 && _localDepth>0 && _localWidth*_localHeight*_localDepth < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0 && _globalDepth%_localDepth==0. - * - * @param _globalWidth the width of the 3D grid we wish to process - * @param _globalHeight the height of the 3D grid we wish to process - * @param _globalDepth the depth of the 3D grid we wish to process - * @param _localWidth the width of the 3D group we wish to process - * @param _localHeight the height of the 3D group we wish to process - * @param _localDepth the depth of the 3D group we wish to process - * @return - */ - public static Range create3D(Device _device, int _globalWidth, int _globalHeight, int _globalDepth, int _localWidth, - int _localHeight, int _localDepth) { - final Range range = new Range(_device, 3); - - range.setGlobalSize_0(_globalWidth); - range.setLocalSize_0(_localWidth); - range.setGlobalSize_1(_globalHeight); - range.setLocalSize_1(_localHeight); - range.setGlobalSize_2(_globalDepth); - range.setLocalSize_2(_localDepth); - range.setValid((range.getLocalSize_0() > 0) && (range.getLocalSize_1() > 0) && (range.getLocalSize_2() > 0) - && ((range.getLocalSize_0() * range.getLocalSize_1() * range.getLocalSize_2()) <= range.getMaxWorkGroupSize()) - && (range.getLocalSize_0() <= range.getMaxWorkItemSize()[0]) - && (range.getLocalSize_1() <= range.getMaxWorkItemSize()[1]) - && (range.getLocalSize_2() <= range.getMaxWorkItemSize()[2]) - && ((range.getGlobalSize_0() % range.getLocalSize_0()) == 0) - && ((range.getGlobalSize_1() % range.getLocalSize_1()) == 0) - && ((range.getGlobalSize_2() % range.getLocalSize_2()) == 0)); - - return (range); - } - - /** - * Create a three dimensional range 0.._globalWidth * 0.._globalHeight *0../_globalDepth - * choosing suitable values for localWidth, localHeight and localDepth. - *

      - * Note that for this range to be valid _globalWidth > 0 && _globalHeight >0 _globalDepth >0 && _localWidth>0 && _localHeight>0 && _localDepth>0 && _localWidth*_localHeight*_localDepth < MAX_GROUP_SIZE && _globalWidth%_localWidth==0 && _globalHeight%_localHeight==0 && _globalDepth%_localDepth==0. - * - *

      - * To determine suitable values for _localWidth,_localHeight and _lodalDepth we extract the factors for _globalWidth,_globalHeight and _globalDepth and then - * find the largest product ( <= MAX_GROUP_SIZE) with the lowest perimeter. - * - *

      - * For example for MAX_GROUP_SIZE of 64 we favor 4x4x4 over 1x16x16. - * - * @param _globalWidth the width of the 3D grid we wish to process - * @param _globalHieght the height of the 3D grid we wish to process - * @param _globalDepth the depth of the 3D grid we wish to process - * @return - */ - public static Range create3D(Device _device, int _globalWidth, int _globalHeight, int _globalDepth) { - final Range withoutLocal = create3D(_device, _globalWidth, _globalHeight, _globalDepth, 1, 1, 1); - - if (withoutLocal.isValid()) { - withoutLocal.setLocalIsDerived(true); - - final int[] widthFactors = getFactors(_globalWidth, withoutLocal.getMaxWorkItemSize()[0]); - final int[] heightFactors = getFactors(_globalHeight, withoutLocal.getMaxWorkItemSize()[1]); - final int[] depthFactors = getFactors(_globalDepth, withoutLocal.getMaxWorkItemSize()[2]); - - withoutLocal.setLocalSize_0(1); - withoutLocal.setLocalSize_1(1); - withoutLocal.setLocalSize_2(1); - - int max = 1; - int perimeter = 0; - - for (final int w : widthFactors) { - for (final int h : heightFactors) { - for (final int d : depthFactors) { - final int size = w * h * d; - if (size > withoutLocal.getMaxWorkGroupSize()) { - break; - } - - if (size > max) { - max = size; - perimeter = w + h + d; - withoutLocal.setLocalSize_0(w); - withoutLocal.setLocalSize_1(h); - withoutLocal.setLocalSize_2(d); - } else if (size == max) { - final int localPerimeter = w + h + d; - if (localPerimeter < perimeter) { // is this the shortest perimeter so far - perimeter = localPerimeter; - withoutLocal.setLocalSize_0(w); - withoutLocal.setLocalSize_1(w); - withoutLocal.setLocalSize_2(d); - } - } - } - } - } - - withoutLocal.setValid((withoutLocal.getLocalSize_0() > 0) - && (withoutLocal.getLocalSize_1() > 0) - && (withoutLocal.getLocalSize_2() > 0) - && ((withoutLocal.getLocalSize_0() * withoutLocal.getLocalSize_1() * withoutLocal.getLocalSize_2()) <= withoutLocal - .getMaxWorkGroupSize()) && (withoutLocal.getLocalSize_0() <= withoutLocal.getMaxWorkItemSize()[0]) - && (withoutLocal.getLocalSize_1() <= withoutLocal.getMaxWorkItemSize()[1]) - && (withoutLocal.getLocalSize_2() <= withoutLocal.getMaxWorkItemSize()[2]) - && ((withoutLocal.getGlobalSize_0() % withoutLocal.getLocalSize_0()) == 0) - && ((withoutLocal.getGlobalSize_1() % withoutLocal.getLocalSize_1()) == 0) - && ((withoutLocal.getGlobalSize_2() % withoutLocal.getLocalSize_2()) == 0)); - } - - return (withoutLocal); - } - - public static Range create3D(int _globalWidth, int _globalHeight, int _globalDepth) { - final Range range = create3D(null, _globalWidth, _globalHeight, _globalDepth); - - return (range); - } - - public static Range create3D(int _globalWidth, int _globalHeight, int _globalDepth, int _localWidth, int _localHeight, - int _localDepth) { - final Range range = create3D(null, _globalWidth, _globalHeight, _globalDepth, _localWidth, _localHeight, _localDepth); - return (range); - } - - /** - * Override {@link #toString()} - */ - @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - - switch (dims) { - case 1: - sb.append("global:" + globalSize_0 + " local:" + (localIsDerived ? "(derived)" : "") + localSize_0); - break; - case 2: - sb.append("2D(global:" + globalSize_0 + "x" + globalSize_1 + " local:" + (localIsDerived ? "(derived)" : "") - + localSize_0 + "x" + localSize_1 + ")"); - break; - case 3: - sb.append("3D(global:" + globalSize_0 + "x" + globalSize_1 + "x" + globalSize_2 + " local:" - + (localIsDerived ? "(derived)" : "") + localSize_0 + "x" + localSize_1 + "x" + localSize_2 + ")"); - break; - } - - return (sb.toString()); - } - - /** - * Get the localSize (of the group) given the requested dimension - * - * @param _dim 0=width, 1=height, 2=depth - * @return The size of the group give the requested dimension - */ - public int getLocalSize(int _dim) { - return (_dim == 0 ? localSize_0 : (_dim == 1 ? localSize_1 : localSize_2)); - } - - /** - * Get the globalSize (of the range) given the requested dimension - * - * @param _dim 0=width, 1=height, 2=depth - * @return The size of the group give the requested dimension - */ - public int getGlobalSize(int _dim) { - return (_dim == 0 ? globalSize_0 : (_dim == 1 ? globalSize_1 : globalSize_2)); - } - - /** - * Get the number of groups for the given dimension. - * - *

      - * This will essentially return globalXXXX/localXXXX for the given dimension (width, height, depth) - * @param _dim The dim we are interested in 0, 1 or 2 - * @return the number of groups for the given dimension. - */ - public int getNumGroups(int _dim) { - return (_dim == 0 ? (globalSize_0 / localSize_0) : (_dim == 1 ? (globalSize_1 / localSize_1) : (globalSize_2 / localSize_2))); - } - - /** - * - * @return The product of all valid localSize dimensions - */ - public int getWorkGroupSize() { - return localSize_0 * localSize_1 * localSize_2; - } - - public Device getDevice() { - return (device); - } - - /** - * @return the globalSize_0 - */ - public int getGlobalSize_0() { - return globalSize_0; - } - - /** - * @param globalSize_0 - * the globalSize_0 to set - */ - public void setGlobalSize_0(int globalSize_0) { - this.globalSize_0 = globalSize_0; - } - - /** - * @return the localSize_0 - */ - public int getLocalSize_0() { - return localSize_0; - } - - /** - * @param localSize_0 - * the localSize_0 to set - */ - public void setLocalSize_0(int localSize_0) { - this.localSize_0 = localSize_0; - } - - /** - * @return the globalSize_1 - */ - public int getGlobalSize_1() { - return globalSize_1; - } - - /** - * @param globalSize_1 - * the globalSize_1 to set - */ - public void setGlobalSize_1(int globalSize_1) { - this.globalSize_1 = globalSize_1; - } - - /** - * @return the localSize_1 - */ - public int getLocalSize_1() { - return localSize_1; - } - - /** - * @param localSize_1 - * the localSize_1 to set - */ - public void setLocalSize_1(int localSize_1) { - this.localSize_1 = localSize_1; - } - - /** - * @return the globalSize_2 - */ - public int getGlobalSize_2() { - return globalSize_2; - } - - /** - * @param globalSize_2 - * the globalSize_2 to set - */ - public void setGlobalSize_2(int globalSize_2) { - this.globalSize_2 = globalSize_2; - } - - /** - * @return the localSize_2 - */ - public int getLocalSize_2() { - return localSize_2; - } - - /** - * @param localSize_2 - * the localSize_2 to set - */ - public void setLocalSize_2(int localSize_2) { - this.localSize_2 = localSize_2; - } - - /** - * Get the number of dims for this Range. - * - * @return 0, 1 or 2 for one dimensional, two dimensional and three dimensional range respectively. - */ - public int getDims() { - return dims; - } - - /** - * @param dims - * the dims to set - */ - public void setDims(int dims) { - this.dims = dims; - } - - /** - * @return the valid - */ - public boolean isValid() { - return valid; - } - - /** - * @param valid - * the valid to set - */ - public void setValid(boolean valid) { - this.valid = valid; - } - - /** - * @return the localIsDerived - */ - public boolean isLocalIsDerived() { - return localIsDerived; - } - - /** - * @param localIsDerived - * the localIsDerived to set - */ - public void setLocalIsDerived(boolean localIsDerived) { - this.localIsDerived = localIsDerived; - } - - /** - * @return the maxWorkGroupSize - */ - public int getMaxWorkGroupSize() { - return maxWorkGroupSize; - } - - /** - * @param maxWorkGroupSize - * the maxWorkGroupSize to set - */ - public void setMaxWorkGroupSize(int maxWorkGroupSize) { - this.maxWorkGroupSize = maxWorkGroupSize; - } - - /** - * @return the maxWorkItemSize - */ - public int[] getMaxWorkItemSize() { - return maxWorkItemSize; - } - - /** - * @param maxWorkItemSize - * the maxWorkItemSize to set - */ - public void setMaxWorkItemSize(int[] maxWorkItemSize) { - this.maxWorkItemSize = maxWorkItemSize; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/annotation/Experimental.java b/com.amd.aparapi/src/java/com/amd/aparapi/annotation/Experimental.java deleted file mode 100644 index e40e2106..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/annotation/Experimental.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.annotation; - -/** - * Used to tag experimental features (methods/fields) - *

      - * Do not rely on anything tagged as experimental, it will probably be retracted/refactored - * - * @author gfrost - * - */ -public @interface Experimental { - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/annotation/package-info.java b/com.amd.aparapi/src/java/com/amd/aparapi/annotation/package-info.java deleted file mode 100644 index 27f9e1df..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/annotation/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * - */ -package com.amd.aparapi.annotation; \ No newline at end of file diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/device/Device.java b/com.amd.aparapi/src/java/com/amd/aparapi/device/Device.java deleted file mode 100644 index 48b33515..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/device/Device.java +++ /dev/null @@ -1,122 +0,0 @@ -package com.amd.aparapi.device; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.OpenCLDevice.DeviceComparitor; -import com.amd.aparapi.device.OpenCLDevice.DeviceSelector; - -public abstract class Device{ - - public static enum TYPE { - UNKNOWN, - GPU, - CPU, - JTP, - SEQ - }; - - public static Device best() { - return (OpenCLDevice.select(new DeviceComparitor(){ - @Override public OpenCLDevice select(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs) { - if (_deviceLhs.getType() != _deviceRhs.getType()) { - if (_deviceLhs.getType() == TYPE.GPU) { - return (_deviceLhs); - } else { - return (_deviceRhs); - } - } - - if (_deviceLhs.getMaxComputeUnits() > _deviceRhs.getMaxComputeUnits()) { - return (_deviceLhs); - } else { - return (_deviceRhs); - } - } - })); - } - - public static Device first(final Device.TYPE _type) { - return (OpenCLDevice.select(new DeviceSelector(){ - @Override public OpenCLDevice select(OpenCLDevice _device) { - return (_device.getType() == _type ? _device : null); - } - })); - } - - public static Device firstGPU() { - return (first(Device.TYPE.GPU)); - } - - public static Device firstCPU() { - return (first(Device.TYPE.CPU)); - - } - - protected TYPE type = TYPE.UNKNOWN; - - protected int maxWorkGroupSize; - - protected int maxWorkItemDimensions; - - protected int[] maxWorkItemSize = new int[] { - 0, - 0, - 0 - }; - - public TYPE getType() { - return type; - } - - public void setType(TYPE type) { - this.type = type; - } - - public int getMaxWorkItemDimensions() { - return maxWorkItemDimensions; - } - - public void setMaxWorkItemDimensions(int _maxWorkItemDimensions) { - maxWorkItemDimensions = _maxWorkItemDimensions; - } - - public int getMaxWorkGroupSize() { - return maxWorkGroupSize; - } - - public void setMaxWorkGroupSize(int _maxWorkGroupSize) { - maxWorkGroupSize = _maxWorkGroupSize; - } - - public int[] getMaxWorkItemSize() { - return maxWorkItemSize; - } - - public void setMaxWorkItemSize(int[] maxWorkItemSize) { - this.maxWorkItemSize = maxWorkItemSize; - } - - public Range createRange(int _globalWidth) { - return (Range.create(this, _globalWidth)); - } - - public Range createRange(int _globalWidth, int _localWidth) { - return (Range.create(this, _globalWidth, _localWidth)); - } - - public Range createRange2D(int _globalWidth, int _globalHeight) { - return (Range.create2D(this, _globalWidth, _globalHeight)); - } - - public Range createRange2D(int _globalWidth, int _globalHeight, int _localWidth, int _localHeight) { - return (Range.create2D(this, _globalWidth, _globalHeight, _localWidth, _localHeight)); - } - - public Range createRange3D(int _globalWidth, int _globalHeight, int _globalDepth) { - return (Range.create3D(this, _globalWidth, _globalHeight, _globalDepth)); - } - - public Range createRange3D(int _globalWidth, int _globalHeight, int _globalDepth, int _localWidth, int _localHeight, - int _localDepth) { - return (Range.create3D(this, _globalWidth, _globalHeight, _globalDepth, _localWidth, _localHeight, _localDepth)); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/device/JavaDevice.java b/com.amd.aparapi/src/java/com/amd/aparapi/device/JavaDevice.java deleted file mode 100644 index 78082e77..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/device/JavaDevice.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.amd.aparapi.device; - -public class JavaDevice extends Device{ - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/device/OpenCLDevice.java b/com.amd.aparapi/src/java/com/amd/aparapi/device/OpenCLDevice.java deleted file mode 100644 index 58896058..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/device/OpenCLDevice.java +++ /dev/null @@ -1,470 +0,0 @@ -package com.amd.aparapi.device; - -import com.amd.aparapi.ProfileInfo; -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.lang.annotation.Annotation; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.amd.aparapi.Range; -import com.amd.aparapi.internal.opencl.OpenCLArgDescriptor; -import com.amd.aparapi.internal.opencl.OpenCLKernel; -import com.amd.aparapi.internal.opencl.OpenCLPlatform; -import com.amd.aparapi.internal.opencl.OpenCLProgram; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Arg; -import com.amd.aparapi.opencl.OpenCL.Constant; -import com.amd.aparapi.opencl.OpenCL.GlobalReadOnly; -import com.amd.aparapi.opencl.OpenCL.GlobalReadWrite; -import com.amd.aparapi.opencl.OpenCL.GlobalWriteOnly; -import com.amd.aparapi.opencl.OpenCL.Kernel; -import com.amd.aparapi.opencl.OpenCL.Local; -import com.amd.aparapi.opencl.OpenCL.Resource; -import com.amd.aparapi.opencl.OpenCL.Source; - -public class OpenCLDevice extends Device{ - - private final OpenCLPlatform platform; - - private final long deviceId; - - private int maxComputeUnits; - - private long localMemSize; - - private long globalMemSize; - - private long maxMemAllocSize; - - /** - * Minimal constructor - * - * @param _platform - * @param _deviceId - * @param _type - */ - public OpenCLDevice(OpenCLPlatform _platform, long _deviceId, TYPE _type) { - platform = _platform; - deviceId = _deviceId; - type = _type; - } - - public OpenCLPlatform getOpenCLPlatform() { - return platform; - } - - public int getMaxComputeUnits() { - return maxComputeUnits; - } - - public void setMaxComputeUnits(int _maxComputeUnits) { - maxComputeUnits = _maxComputeUnits; - } - - public long getLocalMemSize() { - return localMemSize; - } - - public void setLocalMemSize(long _localMemSize) { - localMemSize = _localMemSize; - } - - public long getMaxMemAllocSize() { - return maxMemAllocSize; - } - - public void setMaxMemAllocSize(long _maxMemAllocSize) { - maxMemAllocSize = _maxMemAllocSize; - } - - public long getGlobalMemSize() { - return globalMemSize; - } - - public void setGlobalMemSize(long _globalMemSize) { - globalMemSize = _globalMemSize; - } - - void setMaxWorkItemSize(int _dim, int _value) { - maxWorkItemSize[_dim] = _value; - } - - public long getDeviceId() { - return (deviceId); - } - - public static class OpenCLInvocationHandler> implements InvocationHandler{ - private final Map map; - - private final OpenCLProgram program; - private boolean disposed = false; - public OpenCLInvocationHandler(OpenCLProgram _program, Map _map) { - program = _program; - map = _map; - disposed = false; - } - - @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - if (disposed){ - throw new IllegalStateException("bound interface already disposed"); - } - if (!isReservedInterfaceMethod(method)) { - final OpenCLKernel kernel = map.get(method.getName()); - if (kernel != null) { - kernel.invoke(args); - } - } else { - if (method.getName().equals("put")) { - System.out.println("put not implemented"); - - /* - for (Object arg : args) { - Class argClass = arg.getClass(); - if (argClass.isArray()) { - if (argClass.getComponentType().isPrimitive()) { - OpenCLMem mem = program.getMem(arg, 0L); - if (mem == null) { - throw new IllegalStateException("can't put an array that has never been passed to a kernel " + argClass); - - } - mem.bits |= OpenCLMem.MEM_DIRTY_BIT; - } else { - throw new IllegalStateException("Only array args (of primitives) expected for put/get, cant deal with " - + argClass); - - } - } else { - throw new IllegalStateException("Only array args expected for put/get, cant deal with " + argClass); - } - } - */ - } else if (method.getName().equals("get")) { - System.out.println("get not implemented"); - /* - for (Object arg : args) { - Class argClass = arg.getClass(); - if (argClass.isArray()) { - if (argClass.getComponentType().isPrimitive()) { - OpenCLMem mem = program.getMem(arg, 0L); - if (mem == null) { - throw new IllegalStateException("can't get an array that has never been passed to a kernel " + argClass); - - } - OpenCLJNI.getJNI().getMem(program, mem); - } else { - throw new IllegalStateException("Only array args (of primitives) expected for put/get, cant deal with " - + argClass); - - } - } else { - throw new IllegalStateException("Only array args expected for put/get, cant deal with " + argClass); - } - } - */ - } else if (method.getName().equals("begin")) { - System.out.println("begin not implemented"); - } else if (method.getName().equals("dispose")) { - // System.out.println("dispose"); - for (OpenCLKernel k:map.values()){ - k.dispose(); - } - program.dispose(); - map.clear(); - disposed=true; - } else if (method.getName().equals("end")) { - System.out.println("end not implemented"); - } else if (method.getName().equals("getProfileInfo")){ - proxy = (Object)program.getProfileInfo(); - } - } - return proxy; - } - } - - public List getArgs(Method m) { - final List args = new ArrayList(); - final Annotation[][] parameterAnnotations = m.getParameterAnnotations(); - final Class[] parameterTypes = m.getParameterTypes(); - - for (int arg = 0; arg < parameterTypes.length; arg++) { - if (parameterTypes[arg].isAssignableFrom(Range.class)) { - - } else { - - long bits = 0L; - String name = null; - for (final Annotation pa : parameterAnnotations[arg]) { - if (pa instanceof GlobalReadOnly) { - name = ((GlobalReadOnly) pa).value(); - bits |= OpenCLArgDescriptor.ARG_GLOBAL_BIT | OpenCLArgDescriptor.ARG_READONLY_BIT; - } else if (pa instanceof GlobalWriteOnly) { - name = ((GlobalWriteOnly) pa).value(); - bits |= OpenCLArgDescriptor.ARG_GLOBAL_BIT | OpenCLArgDescriptor.ARG_WRITEONLY_BIT; - } else if (pa instanceof GlobalReadWrite) { - name = ((GlobalReadWrite) pa).value(); - bits |= OpenCLArgDescriptor.ARG_GLOBAL_BIT | OpenCLArgDescriptor.ARG_READWRITE_BIT; - } else if (pa instanceof Local) { - name = ((Local) pa).value(); - bits |= OpenCLArgDescriptor.ARG_LOCAL_BIT; - } else if (pa instanceof Constant) { - name = ((Constant) pa).value(); - bits |= OpenCLArgDescriptor.ARG_CONST_BIT | OpenCLArgDescriptor.ARG_READONLY_BIT; - } else if (pa instanceof Arg) { - name = ((Arg) pa).value(); - bits |= OpenCLArgDescriptor.ARG_ISARG_BIT; - } - - } - if (parameterTypes[arg].isArray()) { - if (parameterTypes[arg].isAssignableFrom(float[].class)) { - bits |= OpenCLArgDescriptor.ARG_FLOAT_BIT | OpenCLArgDescriptor.ARG_ARRAY_BIT; - } else if (parameterTypes[arg].isAssignableFrom(int[].class)) { - bits |= OpenCLArgDescriptor.ARG_INT_BIT | OpenCLArgDescriptor.ARG_ARRAY_BIT; - } else if (parameterTypes[arg].isAssignableFrom(double[].class)) { - bits |= OpenCLArgDescriptor.ARG_DOUBLE_BIT | OpenCLArgDescriptor.ARG_ARRAY_BIT; - } else if (parameterTypes[arg].isAssignableFrom(byte[].class)) { - bits |= OpenCLArgDescriptor.ARG_BYTE_BIT | OpenCLArgDescriptor.ARG_ARRAY_BIT; - } else if (parameterTypes[arg].isAssignableFrom(short[].class)) { - bits |= OpenCLArgDescriptor.ARG_SHORT_BIT | OpenCLArgDescriptor.ARG_ARRAY_BIT; - } else if (parameterTypes[arg].isAssignableFrom(long[].class)) { - bits |= OpenCLArgDescriptor.ARG_LONG_BIT | OpenCLArgDescriptor.ARG_ARRAY_BIT; - } - } else if (parameterTypes[arg].isPrimitive()) { - if (parameterTypes[arg].isAssignableFrom(float.class)) { - bits |= OpenCLArgDescriptor.ARG_FLOAT_BIT | OpenCLArgDescriptor.ARG_PRIMITIVE_BIT; - } else if (parameterTypes[arg].isAssignableFrom(int.class)) { - bits |= OpenCLArgDescriptor.ARG_INT_BIT | OpenCLArgDescriptor.ARG_PRIMITIVE_BIT; - } else if (parameterTypes[arg].isAssignableFrom(double.class)) { - bits |= OpenCLArgDescriptor.ARG_DOUBLE_BIT | OpenCLArgDescriptor.ARG_PRIMITIVE_BIT; - } else if (parameterTypes[arg].isAssignableFrom(byte.class)) { - bits |= OpenCLArgDescriptor.ARG_BYTE_BIT | OpenCLArgDescriptor.ARG_PRIMITIVE_BIT; - } else if (parameterTypes[arg].isAssignableFrom(short.class)) { - bits |= OpenCLArgDescriptor.ARG_SHORT_BIT | OpenCLArgDescriptor.ARG_PRIMITIVE_BIT; - } else if (parameterTypes[arg].isAssignableFrom(long.class)) { - bits |= OpenCLArgDescriptor.ARG_LONG_BIT | OpenCLArgDescriptor.ARG_PRIMITIVE_BIT; - } - } else { - System.out.println("OUch!"); - } - if (name == null) { - throw new IllegalStateException("no name!"); - } - final OpenCLArgDescriptor kernelArg = new OpenCLArgDescriptor(name, bits); - args.add(kernelArg); - - } - } - - return (args); - } - - private static boolean isReservedInterfaceMethod(Method _methods) { - return ( _methods.getName().equals("put") - || _methods.getName().equals("get") - || _methods.getName().equals("dispose") - || _methods.getName().equals("begin") - || _methods.getName().equals("end") - || _methods.getName().equals("getProfileInfo")); - } - - private String streamToString(InputStream _inputStream) { - final StringBuilder sourceBuilder = new StringBuilder(); - - if (_inputStream != null) { - - final BufferedReader reader = new BufferedReader(new InputStreamReader(_inputStream)); - - try { - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - sourceBuilder.append(line).append("\n"); - } - } catch (final IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - try { - _inputStream.close(); - } catch (final IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - - return (sourceBuilder.toString()); - } - - public > T bind(Class _interface, InputStream _inputStream) { - return (bind(_interface, streamToString(_inputStream))); - } - - public > T bind(Class _interface) { - return (bind(_interface, (String) null)); - } - - public > T bind(Class _interface, String _source) { - final Map> kernelNameToArgsMap = new HashMap>(); - - if (_source == null) { - final StringBuilder sourceBuilder = new StringBuilder(); - boolean interfaceIsAnnotated = false; - for (final Annotation a : _interface.getAnnotations()) { - if (a instanceof Source) { - final Source source = (Source) a; - sourceBuilder.append(source.value()).append("\n"); - interfaceIsAnnotated = true; - } else if (a instanceof Resource) { - final Resource sourceResource = (Resource) a; - final InputStream stream = _interface.getClassLoader().getResourceAsStream(sourceResource.value()); - sourceBuilder.append(streamToString(stream)); - interfaceIsAnnotated = true; - } - } - - if (interfaceIsAnnotated) { - // just crawl the methods (non put or get) and create kernels - for (final Method m : _interface.getDeclaredMethods()) { - if (!isReservedInterfaceMethod(m)) { - final List args = getArgs(m); - kernelNameToArgsMap.put(m.getName(), args); - } - } - } else { - - for (final Method m : _interface.getDeclaredMethods()) { - if (!isReservedInterfaceMethod(m)) { - for (final Annotation a : m.getAnnotations()) { - // System.out.println(" annotation "+a); - // System.out.println(" annotation type " + a.annotationType()); - if (a instanceof Kernel) { - sourceBuilder.append("__kernel void " + m.getName() + "("); - final List args = getArgs(m); - - boolean first = true; - for (final OpenCLArgDescriptor arg : args) { - if (first) { - first = false; - } else { - sourceBuilder.append(","); - } - sourceBuilder.append("\n " + arg); - } - - sourceBuilder.append(")"); - final Kernel kernel = (Kernel) a; - sourceBuilder.append(kernel.value()); - kernelNameToArgsMap.put(m.getName(), args); - - } - } - } - } - - } - _source = sourceBuilder.toString(); - } else { - for (final Method m : _interface.getDeclaredMethods()) { - if (!isReservedInterfaceMethod(m)) { - final List args = getArgs(m); - kernelNameToArgsMap.put(m.getName(), args); - } - } - } - - // System.out.println("opencl{\n" + _source + "\n}opencl"); - - final OpenCLProgram program = new OpenCLProgram(this, _source).createProgram(this); - - final Map map = new HashMap(); - for (final String name : kernelNameToArgsMap.keySet()) { - final OpenCLKernel kernel = OpenCLKernel.createKernel(program, name, kernelNameToArgsMap.get(name)); - //final OpenCLKernel kernel = new OpenCLKernel(program, name, kernelNameToArgsMap.get(name)); - if (kernel == null) { - throw new IllegalStateException("kernel is null"); - } - - map.put(name, kernel); - } - - final OpenCLInvocationHandler invocationHandler = new OpenCLInvocationHandler(program, map); - final T instance = (T) Proxy.newProxyInstance(OpenCLDevice.class.getClassLoader(), new Class[] { - _interface, - OpenCL.class - }, invocationHandler); - - return instance; - } - - public interface DeviceSelector{ - OpenCLDevice select(OpenCLDevice _device); - } - - public interface DeviceComparitor{ - OpenCLDevice select(OpenCLDevice _deviceLhs, OpenCLDevice _deviceRhs); - } - - public static OpenCLDevice select(DeviceSelector _deviceSelector) { - OpenCLDevice device = null; - final OpenCLPlatform platform = new OpenCLPlatform(0, null, null, null); - - for (final OpenCLPlatform p : platform.getOpenCLPlatforms()) { - for (final OpenCLDevice d : p.getOpenCLDevices()) { - device = _deviceSelector.select(d); - if (device != null) { - break; - } - } - if (device != null) { - break; - } - } - - return (device); - } - - public static OpenCLDevice select(DeviceComparitor _deviceComparitor) { - OpenCLDevice device = null; - final OpenCLPlatform platform = new OpenCLPlatform(0, null, null, null); - - for (final OpenCLPlatform p : platform.getOpenCLPlatforms()) { - for (final OpenCLDevice d : p.getOpenCLDevices()) { - if (device == null) { - device = d; - } else { - device = _deviceComparitor.select(device, d); - } - } - } - - return (device); - } - - @Override public String toString() { - final StringBuilder s = new StringBuilder("{"); - boolean first = true; - for (final int workItemSize : maxWorkItemSize) { - if (first) { - first = false; - } else { - s.append(", "); - } - - s.append(workItemSize); - } - - s.append("}"); - - return ("Device " + deviceId + "\n type:" + type + "\n maxComputeUnits=" + maxComputeUnits + "\n maxWorkItemDimensions=" - + maxWorkItemDimensions + "\n maxWorkItemSizes=" + s + "\n maxWorkWorkGroupSize=" + maxWorkGroupSize - + "\n globalMemSize=" + globalMemSize + "\n localMemSize=" + localMemSize); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/device/package-info.java b/com.amd.aparapi/src/java/com/amd/aparapi/device/package-info.java deleted file mode 100644 index babe06a6..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/device/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * - */ -package com.amd.aparapi.device; \ No newline at end of file diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/exception/DeprecatedException.java b/com.amd.aparapi/src/java/com/amd/aparapi/exception/DeprecatedException.java deleted file mode 100644 index 4e2dfa0e..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/exception/DeprecatedException.java +++ /dev/null @@ -1,47 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.exception; - -import com.amd.aparapi.internal.exception.AparapiException; - -@SuppressWarnings("serial") public class DeprecatedException extends AparapiException{ - - public DeprecatedException(String msg) { - super(msg); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/exception/package-info.java b/com.amd.aparapi/src/java/com/amd/aparapi/exception/package-info.java deleted file mode 100644 index b2347d90..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/exception/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * - */ -package com.amd.aparapi.exception; \ No newline at end of file diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/DocMe.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/DocMe.java deleted file mode 100644 index 94d84936..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/DocMe.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.amd.aparapi.internal.annotation; - -/** - * Use this annotation to tag stuff that needs Java Doc added - * - * @author gfrost - */ -public @interface DocMe { -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/RemoveMe.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/RemoveMe.java deleted file mode 100644 index 3c5a6492..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/RemoveMe.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.amd.aparapi.internal.annotation; - -/** - * Use this annotation to tag fields that we think need to be removed (method/field/var) - * - * @author gfrost - */ -public @interface RemoveMe { -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/Unused.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/Unused.java deleted file mode 100644 index e984cb5f..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/Unused.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.internal.annotation; - -/** - * Used to tag unused features (methods/fields) - *

      - * Do not rely on anything tagged as unused, it will probably be retracted/refactored - * - * @author gfrost - * - */ -public @interface Unused { - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/UsedByJNICode.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/UsedByJNICode.java deleted file mode 100644 index 351890d8..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/annotation/UsedByJNICode.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.amd.aparapi.internal.annotation; - -/** - * Be careful changing the name/type of this field as it is referenced from JNI code. - */ -public @interface UsedByJNICode { - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/AparapiException.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/AparapiException.java deleted file mode 100644 index af7b2499..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/AparapiException.java +++ /dev/null @@ -1,62 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.exception; - -/** - * We use AparapiException class and subclasses to wrap other - * Exception classes, mainly to allow differentiation between Aparapi specific issues at runtime. - * - * The class parser for example will throw a specific ClassParseException if any Aparapi unfriendly - * constructs are found. This allows us to fail fast during classfile parsing. - * - * @see com.amd.aparapi.internal.exception.ClassParseException - * @see com.amd.aparapi.internal.exception.CodeGenException - * - * @author gfrost - * - */ -@SuppressWarnings("serial") public class AparapiException extends Exception{ - - public AparapiException(String _msg) { - super(_msg); - } - - public AparapiException(Throwable _t) { - super(_t); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/ClassParseException.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/ClassParseException.java deleted file mode 100644 index 776dd967..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/ClassParseException.java +++ /dev/null @@ -1,133 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.exception; - -import com.amd.aparapi.internal.instruction.Instruction; - -/** - * We throw ClassParseExceptions (derived from AparapiException) if we encounter any Aparapi unfriendly - * constructs. This allows us to fail fast. - * - * @see com.amd.aparapi.internal.exception.AparapiException - * - * @author gfrost - * - */ -@SuppressWarnings("serial") public class ClassParseException extends AparapiException{ - - public static enum TYPE { - NONE("none"), // - ARRAY_RETURN("We don't support areturn instructions"), // - PUTFIELD("We don't support putstatic instructions"), // - INVOKEINTERFACE("We don't support invokeinterface instructions"), // - GETSTATIC("We don't support getstatic instructions"), // - ATHROW("We don't support athrow instructions"), // - SYNCHRONIZE("We don't support monitorenter or monitorexit instructions"), // - NEW("We don't support new instructions"), // - ARRAYALIAS("We don't support copying refs in kernels"), // - SWITCH("We don't support lookupswitch or tableswitch instructions"), // - METHODARRAYARG("We don't support passing arrays as method args"), // - RECURSION("We don't support recursion"), // - UNSUPPORTEDBYTECODE("This bytecode is not supported"), // - OPERANDCONSUMERPRODUCERMISSMATCH("Detected an non-reducable operand consumer/producer mismatch"), // - BADGETTERTYPEMISMATCH("Getter return type does not match field var type"), // - BADGETTERNAMEMISMATCH("Getter name does not match fiels name"), // - BADGETTERNAMENOTFOUND("Getter not found"), // - BADSETTERTYPEMISMATCH("Setter arg type does not match field var type"), // - EXCEPTION("We don't support catch blocks"), // - ARRAYLOCALVARIABLE("Found an array local variable which assumes that we will alias a field array"), // - CONFUSINGBRANCHESPOSSIBLYCONTINUE("we don't support continue"), // - CONFUSINGBRANCHESPOSSIBLYBREAK("we don't support break"), // - OBJECTFIELDREFERENCE("Using java objects inside kernels is not supported"), // - OBJECTARRAYFIELDREFERENCE("Object array elements cannot contain"), // - OVERRIDENFIELD("Found overidden field"), // - LOCALARRAYLENGTHACCESS("Found array length access on local array. Might be a result of using ForEach()"), // - ACCESSEDOBJECTNONFINAL("Kernel array object member class must be final."), // - ACCESSEDOBJECTFIELDNAMECONFLICT("Conflicting fields found in class hierarchy"), // - ACCESSEDOBJECTONLYSUPPORTSSIMPLEPUTFIELD("We don't support putfield instructions beyond simple setters"), // - ACCESSEDOBJECTSETTERARRAY("Passing array arguments to Intrinsics in expression form is not supported"), // - MULTIDIMENSIONARRAYASSIGN("Can't assign to two dimension array"), // - MULTIDIMENSIONARRAYACCESS("Can't access through a two dimensional array"), // - MISSINGLOCALVARIABLETABLE("Method does not contain a local variable table (recompile with -g?)"), // - IMPROPERPRIVATENAMEMANGLING("Could not parse private array size from field name"); - - private String description; - - TYPE(final String _description) { - description = _description; - } - - public String getDescription() { - return (description); - } - }; - - private Instruction instruction; - - private TYPE type; - - public ClassParseException(final TYPE _type) { - super(_type.getDescription()); - type = _type; - instruction = null; - } - - public ClassParseException(final Instruction _instruction, final TYPE _type) { - super("@" + _instruction.getThisPC() + " " + _instruction.getByteCode() + " " + _type.getDescription()); - type = _type; - instruction = _instruction; - } - - public ClassParseException(final TYPE _type, final String _methodName) { - super("@" + _methodName + " " + _type.getDescription()); - type = _type; - instruction = null; - } - - public ClassParseException(final Throwable _t) { - super(_t); - } - - public Instruction getInstruction() { - return (instruction); - } - - public TYPE getType() { - return (type); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/CodeGenException.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/CodeGenException.java deleted file mode 100644 index 5d680cdb..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/CodeGenException.java +++ /dev/null @@ -1,49 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.exception; - -@SuppressWarnings("serial") public class CodeGenException extends AparapiException{ - - public CodeGenException(String msg) { - super(msg); - } - - public CodeGenException(Throwable t) { - super(t); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/RangeException.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/RangeException.java deleted file mode 100644 index 7cdc710a..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/exception/RangeException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.exception; - -@SuppressWarnings("serial") public class RangeException extends AparapiException{ - - public RangeException(String msg) { - super(msg); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/BranchSet.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/BranchSet.java deleted file mode 100644 index 0454d75b..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/BranchSet.java +++ /dev/null @@ -1,368 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.instruction; - -import java.util.ArrayList; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Set; - -import com.amd.aparapi.internal.instruction.InstructionSet.Branch; -import com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch; - -/** - * Deals with the issue of recognizing that a sequence of bytecode branch instructions actually represent a single if/while with a logical expression. - * - *

      - * A logical expressions such as - *

      
      -      if (i>= 0 && i%2 == 0 && i<100){}
      - * 
      - * gets translated into a sequence of bytecode level branches and targets. Which might look like the following. - *
      
      -   a: if ? e      +
      -   b: if ? d      |+
      -   c: if ? e      ||+
      -   d: if ? out    |v|+
      -   e: ...         v v|
      -      ...            |
      - out: _instruction   v
      - * 
      - * We need an algorithm for recognizing the underlying logical expression. - *

      - * Essentially, given a set of branches, get the longest sequential sequence including the input set which target each other or _target. - * - * Branches can legally branch to another in the valid set, or to the fall through of the last in the valid set or to _target - *

      - * So an

      if(COND){IF_INSTRUCTIONS}else{ELSE_INSTUCTIONS}...
      will be -
       
      -       branch[?? branch]*, instructions*,goto,instruction*,target
      -
      - * and
      if(COND){IF_INSTRUCTIONS}...
      will be :- -
      -       branch[?? branch]*,instruction*,target
      -
      - * The psuedo code code the algorithm looks like this: -
      -   int n=0;
      -   while (exp.length >1){
      -     if (exp[n].target == exp[n+1].target){          #rule 1
      -      replace exp[n] and exp[n+1] with a single expression representing 'exp[n] || exp[n+1]'
      -      n=0;
      -     }else if (exp[n].target == exp[n+1].next){      #rule 2
      -      replace exp[n] and exp[n+1] with a single expression representing '!(exp[n]) && exp[n+1]
      -      n=0;
      -     }else{                                          #rule 3
      -      n++;
      -     }
      -   }
      -
      -   result = !exp[0];
      -
      - * @author gfrost - */ - -public class BranchSet{ - /** - * Base abstract class used to hold information used to construct node tree for logical expressions. - * - * @see SimpleLogicalExpressionNode - * @see CompoundLogicalExpressionNode - * - * @author gfrost - * - */ - public static abstract class LogicalExpressionNode{ - private LogicalExpressionNode next = null; - - private LogicalExpressionNode parent = null; - - public void setParent(LogicalExpressionNode _parent) { - parent = _parent; - } - - public abstract int getTarget(); - - public abstract int getFallThrough(); - - public abstract void invert(); - - public LogicalExpressionNode getRoot() { - if (parent != null) { - return (parent); - } else { - return (this); - } - } - - public LogicalExpressionNode getNext() { - return (next == null ? next : next.getRoot()); - } - - public void setNext(LogicalExpressionNode _next) { - next = _next == null ? _next : _next.getRoot(); - } - - public LogicalExpressionNode getParent() { - return (parent); - } - } - - /** - * A node in the expression tree representing a simple logical expression. - * - * For example (i<3) in the following would appear as a SimpleLogicalExpressionNode
      - *
      
      -    * if (i<3){}
      -    * 
      - * - * @author gfrost - * - */ - public static class SimpleLogicalExpressionNode extends LogicalExpressionNode{ - private final ConditionalBranch branch; - - protected boolean invert = false; - - public SimpleLogicalExpressionNode(ConditionalBranch _branch) { - branch = _branch; - } - - @Override public int getTarget() { - return (getBranch().getTarget().getThisPC()); - } - - @Override public void invert() { - invert = !invert; - } - - @Override public int getFallThrough() { - return (getBranch().getNextPC().getThisPC()); - } - - public boolean isInvert() { - return (invert); - } - - public ConditionalBranch getBranch() { - return branch; - } - } - - /** - * A node in the expression tree representing a simple logical expression. - * - * For example (i<3 || i>10) in the following would appear as a CompoundLogicalExpressionNode
      - *
      
      -    * if (i<3 || i>10){}
      -    * 
      - * - * @author gfrost - * - */ - public static class CompoundLogicalExpressionNode extends LogicalExpressionNode{ - private final LogicalExpressionNode lhs; - - private final LogicalExpressionNode rhs; - - private boolean and; - - public CompoundLogicalExpressionNode(boolean _and, LogicalExpressionNode _lhs, LogicalExpressionNode _rhs) { - lhs = _lhs; - and = _and; - rhs = _rhs; - setNext(_rhs.getNext()); - if (and) { - lhs.invert(); - // rhs.invert(); - } - rhs.setParent(this); - lhs.setParent(this); - } - - @Override public int getTarget() { - return (rhs.getTarget()); - } - - @Override public void invert() { - and = !and; - lhs.invert(); - rhs.invert(); - } - - public boolean isAnd() { - return (and); - } - - @Override public int getFallThrough() { - return (rhs.getFallThrough()); - } - - public LogicalExpressionNode getLhs() { - - return lhs; - } - - public LogicalExpressionNode getRhs() { - - return rhs; - } - } - - private final List set = new ArrayList(); - - private final Instruction fallThrough; - - private final Instruction target; - - private final Branch last; - - private Branch first; - - private LogicalExpressionNode logicalExpressionNode = null; - - /** - * We construct a branch set with the 'last' branch. It is assumed that all nodes prior to _branch are folded. - * - * This will walk backwards until it finds a non-branch or until it finds a branch that does not below to this set. - * - * @param _branch - */ - public BranchSet(Branch _branch) { - target = _branch.getTarget(); - last = _branch; - - final Set expandedSet = new LinkedHashSet(); - final Instruction fallThroughRoot = last.getNextExpr(); - fallThrough = fallThroughRoot == null ? last.getNextPC() : fallThroughRoot.getStartInstruction(); - first = last; - while ((first.getPrevExpr() != null) && first.getPrevExpr().isBranch() && first.getPrevExpr().asBranch().isConditional()) { - final Instruction prevBranchTarget = first.getPrevExpr().asBranch().getTarget(); - final Instruction prevBranchTargetRoot = prevBranchTarget.getRootExpr(); - if ((prevBranchTarget == target) || (prevBranchTarget == fallThrough) || expandedSet.contains(prevBranchTargetRoot)) { - expandedSet.add(first); - first = first.getPrevExpr().asBranch(); - } else { - break; - } - } - for (Instruction i = first; i != fallThroughRoot; i = i.getNextExpr()) { - set.add((ConditionalBranch) i.asBranch()); - ((ConditionalBranch) i.asBranch()).setBranchSet(this); - } - - // ConditionalBranch16 branches[] = set.toArray(new ConditionalBranch16[0]); - - LogicalExpressionNode end = null; - for (final ConditionalBranch cb : set) { - final SimpleLogicalExpressionNode sn = new SimpleLogicalExpressionNode(cb); - if (logicalExpressionNode == null) { - logicalExpressionNode = sn; - } else { - end.setNext(sn); - } - end = sn; - } - int count = 0; - while (logicalExpressionNode.next != null) { - if (++count > 20) { - throw new IllegalStateException("Sanity check, we seem to have >20 iterations collapsing logical expression"); - } - LogicalExpressionNode n = logicalExpressionNode; - LogicalExpressionNode prev = null; - int i = 0; - - while ((n != null) && (n.getNext() != null)) { - if ((n.getTarget() == n.getNext().getTarget()) || (n.getTarget() == n.getNext().getFallThrough())) { - LogicalExpressionNode newNode = null; - if (n.getTarget() == n.getNext().getTarget()) { - // lhs(n) and rhs(n.next) are branching to the same location so we replace (lhs ?? rhs) with (lhs || rhs) - // System.out.println("exp["+i+"] exp["+(i+1)+"] replaced by (exp["+i+"] || exp["+(i+1)+"])"); - newNode = new CompoundLogicalExpressionNode(false, n, n.getNext()); - } else if (n.getTarget() == n.getNext().getFallThrough()) { - // lhs(n) target and rhs(n.next) fallthrough are the same so we replace (lhs ?? rhs) with !(lhs && rhs) - // System.out.println("exp["+i+"] exp["+(i+1)+"] replaced by (!exp["+i+"] && exp["+(i+1)+"])"); - newNode = new CompoundLogicalExpressionNode(true, n, n.getNext()); - } - if (n == logicalExpressionNode) { - logicalExpressionNode = newNode; - } - if (prev != null) { - prev.setNext(newNode); - } - break; - } else { - prev = n; - n = n.getNext(); - i++; - } - } - } - } - - public List getBranches() { - return (set); - } - - public Branch getFirst() { - return (first); - } - - public Branch getLast() { - - return (last); - } - - public void unhook() { - for (final Branch b : set) { - b.unhook(); - } - } - - public Instruction getTarget() { - return (target); - } - - public Instruction getFallThrough() { - return (fallThrough); - } - - public LogicalExpressionNode getLogicalExpression() { - return (logicalExpressionNode); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/ExpressionList.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/ExpressionList.java deleted file mode 100644 index 46e2e22e..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/ExpressionList.java +++ /dev/null @@ -1,973 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.instruction; - -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.amd.aparapi.Config; -import com.amd.aparapi.internal.exception.ClassParseException; -import com.amd.aparapi.internal.instruction.InstructionSet.AssignToLocalVariable; -import com.amd.aparapi.internal.instruction.InstructionSet.Branch; -import com.amd.aparapi.internal.instruction.InstructionSet.ByteCode; -import com.amd.aparapi.internal.instruction.InstructionSet.CompositeArbitraryScopeInstruction; -import com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction; -import com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch; -import com.amd.aparapi.internal.instruction.InstructionSet.FakeGoto; -import com.amd.aparapi.internal.instruction.InstructionSet.Return; -import com.amd.aparapi.internal.instruction.InstructionSet.UnconditionalBranch; -import com.amd.aparapi.internal.model.MethodModel; -import com.amd.aparapi.internal.model.ClassModel.LocalVariableTableEntry; -import com.amd.aparapi.internal.model.ClassModel.LocalVariableInfo; - -/** - * Essentially a glorified linked list of Instructions plus some additional state to allow us to transform sequences. - * - * ExpressionLists do have the notion of a parent which allows us to clone an existing parent, allow transformations - * and then possibly commit or abort the transformations at will. - * @author gfrost - * - */ -public class ExpressionList{ - - private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - private final MethodModel methodModel; - - private final ExpressionList parent; - - private Instruction head; - - private Instruction tail; - - private final Instruction instruction; - - private ExpressionList(MethodModel _methodModel, ExpressionList _parent, Instruction _instruction) { - - methodModel = _methodModel; - parent = _parent; - instruction = _instruction; - if (parent != null) { - head = parent.head; - tail = parent.tail; - } - if (instruction != null) { - tail = _instruction.getPrevExpr(); - tail.setNextExpr(null); - _instruction.setPrevExpr(null); - } - } - - public ExpressionList(MethodModel _methodModel) { - this(_methodModel, null, null); - } - - /** - * Determine whether the sequence of instructions from _start to _extent is free of branches which extend beyond _extent. - * - * As a side effect, if we find a possible branch it is likely a break or continue so we mark the conditional as such. - * - * @param _start - * @param _extent - * @return - */ - public boolean doesNotContainContinueOrBreak(Instruction _start, Instruction _extent) { - boolean ok = true; - boolean breakOrContinue = false; - for (Instruction i = _start; i != null; i = i.getNextExpr()) { - if (i.isBranch()) { - if (i.asBranch().isForwardUnconditional() && i.asBranch().getTarget().isAfter(_extent)) { - breakOrContinue = true; - } else { - ok = false; - break; - } - } - } - if (ok) { - if (breakOrContinue) { - for (Instruction i = _start; i != null; i = i.getNextExpr()) { - if (i.isBranch() && i.asBranch().isForwardUnconditional() && i.asBranch().getTarget().isAfter(_extent)) { - i.asBranch().setBreakOrContinue(true); - } - } - } - } - return (ok); - } - - public boolean doesNotContainCompositeOrBranch(Instruction _start, Instruction _exclusiveEnd) { - boolean ok = true; - for (Instruction i = _start; (i != null) && (i != _exclusiveEnd); i = i.getNextExpr()) { - if (!(i instanceof CompositeInstruction) && (i.isBranch())) { - ok = false; - break; - } - } - return (ok); - } - - public void unwind() { - if (parent != null) { - if (instruction != null) { - tail.setNextExpr(instruction); - instruction.setPrevExpr(tail); - parent.head = head; - } else { - parent.head = head; - parent.tail = tail; - } - } - } - - /** - * [1] [2] [3] [4] - * - * Note that passing null here essentially deletes the existing expression list and returns the expression - * - * @param _newTail - * @return - */ - - public Instruction createList(final Instruction _newTail) { - Instruction childExprHead = null; - if (_newTail == null) { - childExprHead = head; - tail = head = null; - } else { - childExprHead = _newTail.getNextExpr(); - tail = _newTail; - _newTail.setNextExpr(null); - if (childExprHead != null) { - childExprHead.setPrevExpr(null); - } - - } - return (childExprHead); - } - - /** - * Add this instruction to the end of the list. - * - * @param _instruction - * @return The instruction we added - */ - - public Instruction add(Instruction _instruction) { - - if (head == null) { - head = _instruction; - } else { - _instruction.setPrevExpr(tail); - tail.setNextExpr(_instruction); - - } - - tail = _instruction; - logger.log(Level.FINE, "After PUSH of " + _instruction + " tail=" + tail); - return (tail); - } - - /** - * Insert the given instruction (_newone) between the existing entries (_prev and _next). - * @param _prev - * @param _next - * @param _newOne - */ - public void insertBetween(Instruction _prev, Instruction _next, Instruction _newOne) { - _newOne.setNextExpr(null); - _newOne.setPrevExpr(null); - if (_prev == null) { - // this is the new head - if (_next == null) { - head = tail = _newOne; - } else { - _newOne.setNextExpr(head); - head.setPrevExpr(_newOne); - head = _newOne; - } - } else if (_next == null) { - _newOne.setPrevExpr(tail); - tail.setNextExpr(_newOne); - tail = _newOne; - } else { - _newOne.setNextExpr(_prev.getNextExpr()); - _newOne.setPrevExpr(_next.getPrevExpr()); - _prev.setNextExpr(_newOne); - _next.setPrevExpr(_newOne); - } - - } - - /** - * Inclusive replace between _head and _tail with _newOne. - * - *
      -      *    |      | --> |       | ---> ... ---> |       | ---> |      |
      -      *    | prev |     | _head |               | _tail |      | next |
      -      *    |      | <-- |       | <--- ... <----|       | <--- |      |
      -      * 
      - * To - *
      -      *    |      | --> |         | ---> |      |
      -      *    | prev |     | _newOne |      | next |
      -      *    |      | <-- |         | <--- |      |
      -      * 
      - */ - - public void replaceInclusive(Instruction _head, Instruction _tail, Instruction _newOne) { - _newOne.setNextExpr(null); - _newOne.setPrevExpr(null); - final Instruction prevHead = _head.getPrevExpr(); - if (_tail == null) { - // this is the new tail - _newOne.setPrevExpr(prevHead); - prevHead.setNextExpr(_newOne); - tail = _newOne; - } else { - final Instruction tailNext = _tail.getNextExpr(); - if (prevHead == null) { - // this is the new head - if (tailNext == null) { - head = tail = _newOne; - } else { - _newOne.setNextExpr(head); - head.setPrevExpr(_newOne); - head = _newOne; - } - } else if (tailNext == null) { - _newOne.setPrevExpr(prevHead); - prevHead.setNextExpr(_newOne); - tail = _newOne; - _head.setPrevExpr(null); - } else { - _newOne.setNextExpr(tailNext); - _newOne.setPrevExpr(prevHead); - prevHead.setNextExpr(_newOne); - tailNext.setPrevExpr(_newOne); - - } - _tail.setNextExpr(null); - _head.setPrevExpr(null); - } - - } - - /** - * Fold headTail.tail into valid composites - * - *
      -    * if(??){then}... 
      -    *   ?? ?> [THEN] ...
      -    *       -------->
      -    *
      -    * if (??){THEN}else{ELSE}...
      -    * 
      -    *   ?? ?> [THEN] >> [ELSE] ...
      -    *       ------------>
      -    *                 -------->
      -    *               
      -    * sun for (INIT,??,DELTA){BODY} ...
      -    * 
      -    *    [INIT] ?? ?> [BODY] [DELTA] << ...
      -    *               ------------------>
      -    *            <-------------------
      -    *        
      -    * sun for (,??,DELTA){BODY} ...
      -    * 
      -    *     ?? ?> [BODY] [DELTA] << ...
      -    *         ------------------>
      -    *      <-------------------    
      -    *        
      -    * sun while (?){l} ...
      -    * 
      -    *    ?? ?> [BODY] << ...
      -    *        ----------->
      -    *     <------------
      -    *               
      -    * eclipse for (INIT,??,DELTA){BODY} ...
      -    *    [INIT] >> [BODY] [DELTA] ?? ?< ...
      -    *            ---------------->
      -    *              <-----------------
      -    *          
      -    * eclipse for (,??,DELTA){BODY} ...
      -    *    >> [BODY] [DELTA] ?? ?< ...
      -    *     --------------->
      -    *       <-----------------
      -    *      
      -    * eclipse while (??){BODY} ...
      -    *    >> [BODY] ?? ?< ...
      -    *     -------->
      -    *       <----------
      -    *
      -    * eclipe if (?1) { while (?2) {BODY} } else {ELSE} ...
      -    *    ?1 ?> >> [BODY] ?2 ?< >> [ELSE] ...
      -    *           --------->
      -    *              <---------
      -    *        --------------------->    
      -    *                           -------->   
      -    * 
      -    * sun for (,?1,DELTA){ if (?2) { THEN break; } BODY} ...
      -    * 
      -    *     ?1 ?> ?2 ?> [THEN] >> [BODY] [DELTA] << ...
      -    *               ----------->
      -    *         ---------------------------------->
      -    *                         ------------------>
      -    *     <------------------------------------ 
      -    *     
      -    * sun for (,?1,DELTA){ if (?2) { THEN continue; } BODY} ...
      -    * 
      -    *     ?1 ?> ?2 ?> THEN >> [BODY] [DELTA] << ...
      -    *               --------->
      -    *                       -------->
      -    *         -------------------------------->
      -    *     <----------------------------------     
      -    *           
      -    * Some exceptions based on sun javac optimizations
      -    * 
      -    * if (?1){ if (?2){THEN} }else{ ELSE } ...
      -    *   One might expect 
      -    *    ?1 ?> ?2 ?> [THEN] >> [ELSE] ...
      -    *        ----------------->
      -    *              -------->!         
      -    *                        ------------->
      -    *   However the conditional branch to the unconditional (!) is optimized away and instead the unconditional inverted and extended 
      -    *                   
      -    *    ?1 ?> ?2 ?> [THEN] >> [ELSE] ...
      -    *        ----------------->
      -    *              --------*--------->
      -    *              
      -    * sun if (?1) { while (?2) {l} } else {e} ...
      -    *   One might expect 
      -    *    ?1 ?> ?2 ?> [BODY] << >> [ELSE] ...
      -    *        ------------------->
      -    *              ----------->!
      -    *            <----------    
      -    *                           -------->
      -    *                    
      -    *   However as above the conditional branch to the unconditional (!) can be optimized away and the conditional inverted and extended 
      -    *    ?1 ?> ?2 ?> [BODY] << >> [ELSE] ...
      -    *        -------------------->
      -    *              -----------*--------->   
      -    *            <-----------  
      -    *              
      -    *   However we can also now remove the forward unconditional completely as it is unreachable
      -    *    ?1 ?> ?2 ?> [BODY] << [ELSE] ...
      -    *        ----------------->
      -    *              ------------------>   
      -    *            <-----------       
      -    *               
      -    * sun while(?1){if (?2) {THEN} else {ELSE} } ...
      -    *   One might expect 
      -    *    ?1 ?> ?2 ?> [BODY] >> [ELSE] << ...
      -    *         -------------------------->
      -    *           <---------------------
      -    *               ---------->    
      -    *                         ------->!
      -    *                    
      -    *   However the unconditional branch to the unconditional backbranch (!) can be optimized away and the unconditional wrapped back directly to the loop control head 
      -    *    ?1 ?> ?2 ?> [BODY] << [ELSE] << ...
      -    *         -------------------------->
      -    *           <---------------------
      -    *               ---------->    
      -    *           <-----------
      -                                        
      -    * 
      - * @param _instruction - * @throws ClassParseException - */ - public boolean foldComposite(final Instruction _instruction) throws ClassParseException { - boolean handled = false; - try { - - if (logger.isLoggable(Level.FINE)) { - System.out.println("foldComposite: curr = " + _instruction); - System.out.println(dumpDiagram(_instruction)); - // System.out.println(dumpDiagram(null, _instruction)); - } - if (_instruction.isForwardBranchTarget() || ((tail != null) && tail.isBranch() && tail.asBranch().isReverseConditional())) { - while (_instruction.isForwardBranchTarget() - || ((tail != null) && tail.isBranch() && tail.asBranch().isReverseConditional())) { - if (logger.isLoggable(Level.FINE)) { - System.out.println(dumpDiagram(_instruction)); - - } - handled = false; - - if ((tail != null) && tail.isBranch() && tail.asBranch().isReverseConditional()) { - /** - * This looks like an eclipse style for/while loop or possibly a do{}while() - *
      -                   * eclipse for (INIT,??,DELTA){BODY} ...
      -                   *    [INIT] >> [BODY] [DELTA] ?? ?< ...
      -                   *            ---------------->
      -                   *              <-----------------
      -                   *          
      -                   * eclipse for (,??,DELTA){BODY} ...
      -                   *    >> [BODY] [DELTA] ?? ?< ...
      -                   *     --------------->
      -                   *       <-----------------
      -                   *      
      -                   * do {BODY} while(??)
      -                   *    [BODY] ?? ?< ...
      -                   *    <-----------
      -                   *
      -                   * eclipse while (??){BODY} ...
      -                   *    >> [BODY] ?? ?< ...
      -                   *     -------->
      -                   *       <----------
      -                   * 
      - **/ - final BranchSet branchSet = ((ConditionalBranch) tail.asBranch()).getOrCreateBranchSet(); - Instruction loopTop = branchSet.getTarget().getRootExpr(); - final Instruction beginingOfBranch = branchSet.getFirst(); - - final Instruction startOfBeginningOfBranch = beginingOfBranch.getStartInstruction(); - // empty loops sometimes look like eclipse loops! - if (startOfBeginningOfBranch == loopTop) { - - loopTop = loopTop.getPrevExpr(); - if (loopTop instanceof AssignToLocalVariable) { - final LocalVariableInfo localVariableInfo = ((AssignToLocalVariable) loopTop).getLocalVariableInfo(); - if ((localVariableInfo.getStart() == loopTop.getNextExpr().getStartPC()) - && (localVariableInfo.getEnd() == _instruction.getThisPC())) { - loopTop = loopTop.getPrevExpr(); // back up over the initialization - } - } - addAsComposites(ByteCode.COMPOSITE_EMPTY_LOOP, loopTop, branchSet); - handled = true; - } else { - - if ((loopTop.getPrevExpr() != null) && loopTop.getPrevExpr().isBranch() - && loopTop.getPrevExpr().asBranch().isForwardUnconditional()) { - if (doesNotContainCompositeOrBranch(branchSet.getTarget().getRootExpr(), branchSet.getFirst().getPrevExpr())) { - branchSet.unhook(); - loopTop.getPrevExpr().asBranch().unhook(); - loopTop = loopTop.getPrevExpr(); - // looptop == the unconditional? - loopTop = loopTop.getPrevExpr(); - if (loopTop instanceof AssignToLocalVariable) { - final LocalVariableInfo localVariableInfo = ((AssignToLocalVariable) loopTop).getLocalVariableInfo(); - if ((localVariableInfo.getStart() == loopTop.getNextExpr().getStartPC()) - && (localVariableInfo.getEnd() == _instruction.getThisPC())) { - loopTop = loopTop.getPrevExpr(); // back up over the initialization - } - } - addAsComposites(ByteCode.COMPOSITE_FOR_ECLIPSE, loopTop, branchSet); - handled = true; - } - } - if (!handled) { - // do{}while()_ do not require any previous instruction - if (loopTop.getPrevExpr() == null) { - throw new IllegalStateException("might be a dowhile with no provious expression"); - - } else if (!(loopTop.getPrevExpr().isBranch() && loopTop.getPrevExpr().asBranch().isForwardUnconditional())) { - if (doesNotContainCompositeOrBranch(branchSet.getTarget().getRootExpr(), branchSet.getFirst() - .getPrevExpr())) { - loopTop = loopTop.getPrevExpr(); - branchSet.unhook(); - addAsComposites(ByteCode.COMPOSITE_DO_WHILE, loopTop, branchSet); - handled = true; - } - } else { - throw new IllegalStateException("might be mistaken for a do while!"); - } - } - } - } - if (!handled && _instruction.isForwardConditionalBranchTarget() && tail.isBranch() - && tail.asBranch().isReverseUnconditional()) { - - /** - * This is s sun style loop - *
             
      -                   * sun for (INIT,??,DELTA){BODY} ...
      -                   * 
      -                   *    [INIT] ?? ?> [BODY] [DELTA] << ...
      -                   *               ------------------>
      -                   *            <-------------------
      -                   *        
      -                   * sun for (,??,DELTA){BODY} ...
      -                   * 
      -                   *     ?? ?> [BODY] [DELTA] << ...
      -                   *         ------------------>
      -                   *      <-------------------    
      -                   *        
      -                   * sun while (?){l} ...
      -                   *  
      -                   *    ?? ?> [BODY] << ...
      -                   *         ----------->
      -                   *     <------------
      -                   *               
      -                   *
      - */ - final ConditionalBranch lastForwardConditional = _instruction.getForwardConditionalBranches().getLast(); - final BranchSet branchSet = lastForwardConditional.getOrCreateBranchSet(); - final Branch reverseGoto = tail.asBranch(); - final Instruction loopBackTarget = reverseGoto.getTarget(); - if (loopBackTarget.getReverseUnconditionalBranches().size() > 1) { - throw new ClassParseException(ClassParseException.TYPE.CONFUSINGBRANCHESPOSSIBLYCONTINUE); - } - if (_instruction.isForwardUnconditionalBranchTarget()) { - /** - * Check if we have a break - *
                    
      -                      *    ?? ?> [BODY] ?1 ?> >> [BODY] << ...
      -                      *         -------------------------->
      -                      *                     ---->
      -                      *                        ----------->
      -                      *     <----------------------------
      -                      *               
      -                      *
      - */ - final Branch lastForwardUnconditional = _instruction.getForwardUnconditionalBranches().getLast(); - if ((lastForwardUnconditional != null) && lastForwardUnconditional.isAfter(lastForwardConditional)) { - throw new ClassParseException(ClassParseException.TYPE.CONFUSINGBRANCHESPOSSIBLYBREAK); - } - } - if (loopBackTarget != branchSet.getFirst().getStartInstruction()) { - /** - * we may have a if(?1){while(?2){}}else{...} where the else goto has been optimized away. - *
      -                      *   One might expect 
      -                      *    ?1 ?> ?2 ?> [BODY] << >> [ELSE] ...
      -                      *        ------------------->
      -                      *              ----------->!
      -                      *            <----------    
      -                      *                           -------->
      -                      *                    
      -                      *   However as above the conditional branch to the unconditional (!) can be optimized away and the conditional inverted and extended 
      -                      *    ?1 ?> ?2 ?> [BODY] << >> [ELSE] ...
      -                      *        -------------------->
      -                      *              -----------*--------->   
      -                      *            <-----------  
      -                      *              
      -                      *   However we can also now remove the forward unconditional completely as it is unreachable
      -                      *    ?1 ?> ?2 ?> [BODY] << [ELSE] ...
      -                      *        ----------------->
      -                      *              ------------------>   
      -                      *            <-----------       
      -                      *               
      -                      * 
      - */ - - final Instruction loopbackTargetRoot = loopBackTarget.getRootExpr(); - if (loopbackTargetRoot.isBranch() && loopbackTargetRoot.asBranch().isConditional()) { - final ConditionalBranch topOfRealLoop = (ConditionalBranch) loopbackTargetRoot.asBranch(); - BranchSet extentBranchSet = topOfRealLoop.getBranchSet(); - if (topOfRealLoop.getBranchSet() == null) { - extentBranchSet = topOfRealLoop.findEndOfConditionalBranchSet(_instruction.getNextPC()) - .getOrCreateBranchSet(); - } - // We believe that this extendBranchSet is the real top of the while. - if (doesNotContainCompositeOrBranch(extentBranchSet.getLast().getNextExpr(), reverseGoto)) { - - Instruction loopTop = topOfRealLoop.getPrevExpr(); - if (loopTop instanceof AssignToLocalVariable) { - final LocalVariableInfo localVariableInfo = ((AssignToLocalVariable) loopTop).getLocalVariableInfo(); - if ((localVariableInfo.getStart() == loopTop.getNextExpr().getStartPC()) - && (localVariableInfo.getEnd() == _instruction.getThisPC())) { - loopTop = loopTop.getPrevExpr(); // back up over the initialization - } - } - extentBranchSet.unhook(); - - addAsComposites(ByteCode.COMPOSITE_FOR_SUN, loopTop, extentBranchSet); - final UnconditionalBranch fakeGoto = new FakeGoto(methodModel, extentBranchSet.getLast().getTarget()); - - add(fakeGoto); - extentBranchSet.getLast().getTarget().addBranchTarget(fakeGoto); - - handled = true; - } - } - } else { - /** - * Just a normal sun style loop - */ - if (doesNotContainCompositeOrBranch(branchSet.getLast().getNextExpr(), reverseGoto)) { - Instruction loopTop = reverseGoto.getTarget().getRootExpr().getPrevExpr(); - - if (logger.isLoggable(Level.FINEST)) { - Instruction next = branchSet.getFirst().getNextExpr(); - System.out.println("### for/while candidate exprs: " + branchSet.getFirst()); - while (next != null) { - System.out.println("### expr = " + next); - next = next.getNextExpr(); - } - } - - if (loopTop instanceof AssignToLocalVariable) { - final LocalVariableInfo localVariableInfo = ((AssignToLocalVariable) loopTop).getLocalVariableInfo(); - if ((localVariableInfo.getStart() == loopTop.getNextExpr().getStartPC()) - && (localVariableInfo.getEnd() == _instruction.getThisPC())) { - loopTop = loopTop.getPrevExpr(); // back up over the initialization - - } - } - branchSet.unhook(); - - // If there is an inner scope, it is likely that the loop counter var - // is modified using an inner scope variable so use while rather than for - if (reverseGoto.getPrevExpr() instanceof CompositeArbitraryScopeInstruction) { - addAsComposites(ByteCode.COMPOSITE_WHILE, loopTop, branchSet); - } else { - addAsComposites(ByteCode.COMPOSITE_FOR_SUN, loopTop, branchSet); - } - handled = true; - } - - } - } - if (!handled && !tail.isForwardBranch() && _instruction.isForwardConditionalBranchTarget()) { - /** - * This an if(exp) - *
                   *
      -                   * if(??){then}... 
      -                   *   ?? ?> [THEN] ...
      -                   *       -------->
      -                   *
      -                   *
      - */ - final ConditionalBranch lastForwardConditional = _instruction.getForwardConditionalBranches().getLast(); - final BranchSet branchSet = lastForwardConditional.getOrCreateBranchSet(); - if (doesNotContainContinueOrBreak(branchSet.getLast().getNextExpr(), _instruction)) { - branchSet.unhook(); - addAsComposites(ByteCode.COMPOSITE_IF, branchSet.getFirst().getPrevExpr(), branchSet); - handled = true; - } - } - if (!handled && !tail.isForwardBranch() && _instruction.isForwardUnconditionalBranchTarget()) { - - final LinkedList forwardUnconditionalBranches = _instruction.getForwardUnconditionalBranches(); - - final Branch lastForwardUnconditional = forwardUnconditionalBranches.getLast(); - final Instruction afterGoto = lastForwardUnconditional.getNextExpr(); - if (afterGoto.getStartInstruction().isForwardConditionalBranchTarget()) { - final LinkedList forwardConditionalBranches = afterGoto.getStartInstruction() - .getForwardConditionalBranches(); - final ConditionalBranch lastForwardConditional = forwardConditionalBranches.getLast(); - final BranchSet branchSet = lastForwardConditional.getOrCreateBranchSet(); - - if (doesNotContainCompositeOrBranch(branchSet.getLast().getNextExpr(), lastForwardUnconditional)) { - if (doesNotContainContinueOrBreak(afterGoto.getNextExpr(), _instruction)) { - branchSet.unhook(); - lastForwardUnconditional.unhook(); - addAsComposites(ByteCode.COMPOSITE_IF_ELSE, branchSet.getFirst().getPrevExpr(), branchSet); - handled = true; - } - } else { - //then not clean. - final ExpressionList newHeadTail = new ExpressionList(methodModel, this, lastForwardUnconditional); - handled = newHeadTail.foldComposite(lastForwardUnconditional.getStartInstruction()); - newHeadTail.unwind(); - // handled = foldCompositeRecurse(lastForwardUnconditional); - if (!handled && (forwardUnconditionalBranches.size() > 1)) { - // BI AI AE BE - // ?> ?> .. >> .. >> C S - // ?---------------------->22 - // ?---------->18 - // +-------------->31 - // +------>31 - // Javac sometimes performs the above optimization. Basically the GOTO for the inner IFELSE(AI,AE) instead of targeting the GOTO - // from the outer IFELSE(B1,BE) so instead of AE->BE->... we have AE-->... - // - // So given more than one target we retreat up the list of unconditionals until we find a clean one treating the previously visited GOTO - // as a possible end - - for (int i = forwardUnconditionalBranches.size(); i > 1; i--) { - final Branch thisGoto = forwardUnconditionalBranches.get(i - 1); - final Branch elseGoto = forwardUnconditionalBranches.get(i - 2); - final Instruction afterElseGoto = elseGoto.getNextExpr(); - if (afterElseGoto.getStartInstruction().isConditionalBranchTarget()) { - final BranchSet elseBranchSet = afterElseGoto.getStartInstruction() - .getForwardConditionalBranches().getLast().getOrCreateBranchSet(); - if (doesNotContainCompositeOrBranch(elseBranchSet.getLast().getNextExpr(), elseGoto)) { - if (doesNotContainCompositeOrBranch(afterElseGoto.getNextExpr(), thisGoto)) { - if (logger.isLoggable(Level.FINE)) { - System.out.println(dumpDiagram(_instruction)); - } - elseBranchSet.unhook(); - elseGoto.unhook(); - if (logger.isLoggable(Level.FINE)) { - System.out.println(dumpDiagram(_instruction)); - - } - - final CompositeInstruction composite = CompositeInstruction.create( - ByteCode.COMPOSITE_IF_ELSE, methodModel, elseBranchSet.getFirst(), thisGoto, - elseBranchSet); - replaceInclusive(elseBranchSet.getFirst(), thisGoto.getPrevExpr(), composite); - - handled = true; - - break; - } - } - } - - } - - } - } - - } - - } - if (!handled && !tail.isForwardBranch() && _instruction.isForwardConditionalBranchTarget() - && _instruction.isForwardUnconditionalBranchTarget()) { - // here we have multiple composites ending at the same point - - final Branch lastForwardUnconditional = _instruction.getForwardUnconditionalBranches().getLast(); - final ConditionalBranch lastForwardConditional = _instruction.getStartInstruction() - .getForwardConditionalBranches().getLast(); - // we will clip the tail and see if recursing helps - - if (lastForwardConditional.getTarget().isAfter(lastForwardUnconditional)) { - - lastForwardConditional.retarget(lastForwardUnconditional); - - final ExpressionList newHeadTail = new ExpressionList(methodModel, this, lastForwardUnconditional); - handled = newHeadTail.foldComposite(lastForwardUnconditional.getStartInstruction()); - newHeadTail.unwind(); - - } - - } - if (!handled) { - break; - } - } - - } else { - - // might be end of arbitrary scope - final LocalVariableTableEntry localVariableTable = methodModel.getMethod() - .getLocalVariableTableEntry(); - int startPc = Short.MAX_VALUE; - - for (final LocalVariableInfo localVariableInfo : localVariableTable) { - if (localVariableInfo.getEnd() == _instruction.getThisPC()) { - logger.fine(localVariableInfo.getVariableName() + " scope " + localVariableInfo.getStart() + " ," - + localVariableInfo.getEnd()); - if (localVariableInfo.getStart() < startPc) { - startPc = localVariableInfo.getStart(); - } - } - } - if (startPc < Short.MAX_VALUE) { - logger.fine("Scope block from " + startPc + " to " + (tail.getThisPC() + tail.getLength())); - for (Instruction i = head; i != null; i = i.getNextPC()) { - if (i.getThisPC() == startPc) { - final Instruction startInstruction = i.getRootExpr().getPrevExpr(); - logger.fine("Start = " + startInstruction); - - addAsComposites(ByteCode.COMPOSITE_ARBITRARY_SCOPE, startInstruction.getPrevExpr(), null); - handled = true; - break; - } - } - - } - - } - - if (Config.instructionListener != null) { - Config.instructionListener.showAndTell("after folding", head, _instruction); - } - - } catch (final ClassParseException _classParseException) { - throw new ClassParseException(_classParseException); - } catch (final Throwable t) { - throw new ClassParseException(t); - - } - return (handled); - } - - private void addAsComposites(ByteCode _byteCode, Instruction _start, BranchSet _branchSet) { - final Instruction childTail = tail; - final Instruction childHead = createList(_start); - final CompositeInstruction composite = CompositeInstruction.create(_byteCode, methodModel, childHead, childTail, _branchSet); - add(composite); - } - - /** - * Aids debugging. Creates a diagrammatic form of the roots (+ tail instruction) so that we can analyze control flow. - *
      -    * I I I C C I U I U[I]I
      -    *       |---------->1
      -    *         |---->1
      -    *             |------>2
      -    *                 |-->2
      -    * 
      - * @param _cursor The instruction we are looking at - * @param _instruction The instruction we are considering adding (may be null) - * @return - */ - public String dumpDiagram(Instruction _instruction) { - final StringBuilder sb = new StringBuilder(); - final List list = new ArrayList(); - - for (Instruction i = head; i != null; i = i.getNextExpr()) { - list.add(i); - } - - for (Instruction i = _instruction; i != null; i = i.getNextPC()) { - list.add(i); - } - - final Instruction[] array = list.toArray(new Instruction[0]); - boolean lastWasCursor = false; - - final List branches = new ArrayList(); - for (final Instruction i : list) { - sb.append(String.format(" %3d", i.getStartPC())); - } - - sb.append("\n"); - for (final Instruction i : list) { - sb.append(String.format(" %3d", i.getThisPC())); - } - - sb.append("\n"); - for (final Instruction i : list) { - - if (i == _instruction) { - sb.append(" ["); - lastWasCursor = true; - } else { - if (lastWasCursor) { - sb.append("] "); - lastWasCursor = false; - } else { - sb.append(" "); - } - } - if (i.isBranch() && i.asBranch().isConditional()) { - branches.add(i.asBranch()); - - if (i.asBranch().isForward()) { - sb.append("?>"); - - } else { - sb.append("?<"); - } - } else if (i.isBranch() && i.asBranch().isUnconditional()) { - branches.add(i.asBranch()); - if (i.asBranch().isForward()) { - sb.append(">>"); - } else { - sb.append("<<"); - } - } else if (i instanceof CompositeInstruction) { - sb.append(" C"); - } else if (i instanceof Return) { - - sb.append(" R"); - // } else if (i instanceof AssignToLocalVariable) { - // sb.append(" S"); - } else { - sb.append(".."); - } - } - - if (lastWasCursor) { - sb.append("] "); - } else { - sb.append(" "); - } - - for (final Branch b : branches) { - sb.append("\n "); - if (b.isForward()) { - for (int i = 0; i < array.length; i++) { - if ((array[i].getStartPC() < b.getStartPC()) || (array[i].getThisPC() > b.getTarget().getThisPC())) { - sb.append(" "); - } else { - if (b.isConditional()) { - sb.append("?-"); - } else { - sb.append("+-"); - } - i++; - while ((i < array.length) && (array[i].getStartPC() < b.getTarget().getThisPC())) { - sb.append("----"); - i++; - } - sb.append("->"); - sb.append(b.getTarget().getThisPC()); - - } - } - } else { - for (int i = 0; i < array.length; i++) { - if ((array[i].getStartPC() < b.getTarget().getThisPC()) || (array[i].getThisPC() > b.getThisPC())) { - sb.append(" "); - } else { - sb.append("<-"); - i++; - while ((i < array.length) && (array[i].getStartPC() < b.getThisPC())) { - sb.append("----"); - i++; - } - if (b.isConditional()) { - sb.append("-?"); - } else { - sb.append("-+"); - } - } - } - } - } - - return (sb.toString()); - } - - public Instruction getTail() { - return (tail); - } - - public Instruction getHead() { - return (head); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/Instruction.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/Instruction.java deleted file mode 100644 index cbb30fde..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/Instruction.java +++ /dev/null @@ -1,387 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.instruction; - -import java.util.LinkedList; - -import com.amd.aparapi.internal.instruction.InstructionSet.Branch; -import com.amd.aparapi.internal.instruction.InstructionSet.ByteCode; -import com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction; -import com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch; -import com.amd.aparapi.internal.model.MethodModel; -import com.amd.aparapi.internal.reader.ByteReader; - -/** - * Initially represents a single Java bytecode instruction. - * - * Instructions for each bytecode are created when the bytecode is first scanned. - * - * Each Instruction will contain a pc (program counter) offset from the beginning of the sequence of bytecode and the length will be determined by the information gleaned from InstructionSet.BYTECODE. - * - * - * @author gfrost - * - */ -public abstract class Instruction{ - - protected MethodModel method; - - private final ByteCode byteCode; - - private int length; - - protected int pc; - - abstract String getDescription(); - - private Instruction nextPC = null; - - private Instruction prevPC = null; - - private Instruction nextExpr = null; - - private Instruction prevExpr = null; - - private Instruction parentExpr = null; - - private LinkedList forwardConditionalBranchTargets; - - private LinkedList reverseConditionalBranchTargets; - - private LinkedList forwardUnconditionalBranchTargets; - - private LinkedList reverseUnconditionalBranchTargets; - - private Instruction firstChild = null; - - private Instruction lastChild = null; - - public void setChildren(Instruction _firstChild, Instruction _lastChild) { - - if ((_firstChild == null) || (_lastChild == null)) { - throw new IllegalStateException("null children added"); - } - firstChild = _firstChild; - lastChild = _lastChild; - - for (Instruction i = firstChild; i != lastChild; i = i.getNextExpr()) { - if (i == null) { - throw new IllegalStateException("child list broken "); - } - i.setParentExpr(this); - } - lastChild.setParentExpr(this); - } - - public Instruction getPrevExpr() { - return (prevExpr); - - } - - public Instruction getNextExpr() { - return (nextExpr); - } - - public void setNextPC(Instruction _nextByPC) { - nextPC = _nextByPC; - } - - public void setPrevPC(Instruction _prevByPC) { - prevPC = _prevByPC; - } - - public void setPrevExpr(Instruction _prevExpr) { - prevExpr = _prevExpr; - } - - public void setNextExpr(Instruction _nextExpr) { - nextExpr = _nextExpr; - } - - public Instruction toInstruction() { - return (this); - } - - public int getLength() { - return (length); - } - - public void setLength(int _length) { - length = _length; - } - - public final ByteCode getByteCode() { - return (byteCode); - } - - public int getThisPC() { - return (pc); - } - - public int getStartPC() { - return (getFirstChild() == null ? pc : getFirstChild().getStartPC()); - } - - protected Instruction(MethodModel _method, ByteCode _byteCode, int _pc) { - method = _method; - pc = _pc; - byteCode = _byteCode; - } - - protected Instruction(MethodModel _method, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - this(_method, _byteCode, _wide ? _byteReader.getOffset() - 2 : _byteReader.getOffset() - 1); - } - - // This works for most cases (except calls whose operand count depends upon the signature) so all call instructions therefore override this method - public int getStackConsumeCount() { - return (byteCode.getPop().getStackAdjust()); - } - - public int getStackProduceCount() { - return (byteCode.getPush().getStackAdjust()); - } - - public int getStackDelta() { - return (getStackProduceCount() - getStackConsumeCount()); - } - - @Override public String toString() { - return (String.format("%d %s", pc, byteCode.getName())); - } - - public boolean isBranch() { - return (this instanceof Branch); - } - - public int compareTo(Instruction _other) { - return (pc - _other.pc); - } - - public boolean isAfter(Instruction _other) { - return (compareTo(_other) > 0); - } - - public boolean isAfterOrEqual(Instruction _other) { - return (compareTo(_other) >= 0); - } - - public boolean isBefore(Instruction _other) { - return (compareTo(_other) < 0); - } - - public boolean isBeforeOrEqual(Instruction _other) { - return (compareTo(_other) <= 0); - } - - public Instruction getFirstChild() { - return (firstChild); - } - - public Instruction getLastChild() { - return (lastChild); - } - - public Instruction getStartInstruction() { - return (getFirstChild() == null ? this : getFirstChild().getStartInstruction()); - } - - public MethodModel getMethod() { - return (method); - } - - public Instruction getNextPC() { - return (nextPC); - } - - public Instruction getPrevPC() { - return (prevPC); - } - - public void setParentExpr(Instruction _parentExpr) { - parentExpr = _parentExpr; - } - - public Instruction getParentExpr() { - return (parentExpr); - } - - public Instruction getRootExpr() { - return (parentExpr == null ? this : parentExpr.getRootExpr()); - } - - public boolean isReverseConditionalBranchTarget() { - return ((reverseConditionalBranchTargets != null) && (reverseConditionalBranchTargets.size() > 0)); - } - - public boolean isForwardConditionalBranchTarget() { - return ((forwardConditionalBranchTargets != null) && (forwardConditionalBranchTargets.size() > 0)); - } - - public boolean isReverseUnconditionalBranchTarget() { - return ((reverseUnconditionalBranchTargets != null) && (reverseUnconditionalBranchTargets.size() > 0)); - } - - public boolean isForwardUnconditionalBranchTarget() { - return ((forwardUnconditionalBranchTargets != null) && (forwardUnconditionalBranchTargets.size() > 0)); - } - - public boolean isReverseBranchTarget() { - return (isReverseConditionalBranchTarget() || isReverseUnconditionalBranchTarget()); - } - - public boolean isConditionalBranchTarget() { - return (isReverseConditionalBranchTarget() || isForwardConditionalBranchTarget()); - } - - public boolean isUnconditionalBranchTarget() { - return (isReverseUnconditionalBranchTarget() || isForwardUnconditionalBranchTarget()); - } - - public boolean isForwardBranchTarget() { - return (isForwardConditionalBranchTarget() || isForwardUnconditionalBranchTarget()); - } - - public boolean isBranchTarget() { - return (isForwardBranchTarget() || isReverseBranchTarget()); - } - - public boolean producesStack() { - return ((this instanceof CompositeInstruction) || (getStackProduceCount() > 0)); - } - - public Instruction getReal() { - return (this); - } - - public Branch asBranch() { - return ((Branch) this); - } - - public boolean consumesStack() { - return (getStackConsumeCount() > 0); - } - - public void addBranchTarget(Branch _branch) { - - if (_branch.isReverse()) { - if (_branch.isConditional()) { - if (reverseConditionalBranchTargets == null) { - reverseConditionalBranchTargets = new LinkedList(); - } - reverseConditionalBranchTargets.add((ConditionalBranch) _branch); - } else { - if (reverseUnconditionalBranchTargets == null) { - reverseUnconditionalBranchTargets = new LinkedList(); - } - reverseUnconditionalBranchTargets.add(_branch); - } - } else { - if (_branch.isConditional()) { - if (forwardConditionalBranchTargets == null) { - forwardConditionalBranchTargets = new LinkedList(); - } - forwardConditionalBranchTargets.add((ConditionalBranch) _branch); - } else { - if (forwardUnconditionalBranchTargets == null) { - forwardUnconditionalBranchTargets = new LinkedList(); - } - forwardUnconditionalBranchTargets.add(_branch); - } - } - } - - public void removeBranchTarget(Branch _branch) { - if (_branch.isReverse()) { - if (_branch.isConditional()) { - if (reverseConditionalBranchTargets != null) { - reverseConditionalBranchTargets.remove(_branch); - if (reverseConditionalBranchTargets.size() == 0) { - reverseConditionalBranchTargets = null; - } - } - } else { - if (reverseUnconditionalBranchTargets != null) { - reverseUnconditionalBranchTargets.remove(_branch); - if (reverseUnconditionalBranchTargets.size() == 0) { - reverseUnconditionalBranchTargets = null; - } - } - } - } else { - if (_branch.isConditional()) { - if (forwardConditionalBranchTargets != null) { - forwardConditionalBranchTargets.remove(_branch); - if (forwardConditionalBranchTargets.size() == 0) { - forwardConditionalBranchTargets = null; - } - } - } else { - if (forwardUnconditionalBranchTargets != null) { - forwardUnconditionalBranchTargets.remove(_branch); - if (forwardUnconditionalBranchTargets.size() == 0) { - forwardUnconditionalBranchTargets = null; - } - } - } - } - } - - public LinkedList getForwardUnconditionalBranches() { - return (forwardUnconditionalBranchTargets); - } - - public LinkedList getForwardConditionalBranches() { - return (forwardConditionalBranchTargets); - } - - public LinkedList getReverseUnconditionalBranches() { - return (reverseUnconditionalBranchTargets); - } - - public LinkedList getReverseConditionalBranches() { - return (reverseConditionalBranchTargets); - } - - public boolean isForwardBranch() { - return (isBranch() && asBranch().isForward()); - } - - public boolean sameAs(Instruction _other) { - return (equals(_other)); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionPattern.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionPattern.java deleted file mode 100644 index c57d7189..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionPattern.java +++ /dev/null @@ -1,485 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.instruction; - -import com.amd.aparapi.internal.instruction.InstructionSet.AccessArrayElement; -import com.amd.aparapi.internal.instruction.InstructionSet.AccessInstanceField; -import com.amd.aparapi.internal.instruction.InstructionSet.AccessLocalVariable; -import com.amd.aparapi.internal.instruction.InstructionSet.AssignToArrayElement; -import com.amd.aparapi.internal.instruction.InstructionSet.AssignToInstanceField; -import com.amd.aparapi.internal.instruction.InstructionSet.AssignToLocalVariable; -import com.amd.aparapi.internal.instruction.InstructionSet.CastOperator; -import com.amd.aparapi.internal.instruction.InstructionSet.Constant; -import com.amd.aparapi.internal.instruction.InstructionSet.I_IADD; -import com.amd.aparapi.internal.instruction.InstructionSet.I_ICONST_1; -import com.amd.aparapi.internal.instruction.InstructionSet.I_IINC; -import com.amd.aparapi.internal.instruction.InstructionSet.I_ISUB; -import com.amd.aparapi.internal.instruction.InstructionSet.MethodCall; - -public class InstructionPattern{ - - @SuppressWarnings("unused") private boolean compareSubTrees(Instruction _lhs, Instruction _rhs) { - _lhs = _lhs.getReal(); - _rhs = _rhs.getReal(); - boolean same = _lhs.sameAs(_rhs); - if (same) { - Instruction lhsChild = _lhs.getFirstChild(); - Instruction rhsChild = _rhs.getFirstChild(); - while (same && (lhsChild != null) && (rhsChild != null)) { - same = same && compareSubTrees(lhsChild, rhsChild); - if (same) { - rhsChild = rhsChild.getNextExpr(); - lhsChild = lhsChild.getNextExpr(); - } - } - same = same && (lhsChild == rhsChild); - - } - return (same); - } - - public static class InstructionMatch{ - public final boolean ok; - - public static final InstructionMatch TRUE = new InstructionMatch(true); - - public static final InstructionMatch FALSE = new InstructionMatch(false); - - public InstructionMatch(boolean _ok) { - ok = _ok; - } - - public static InstructionMatch test(boolean _condition) { - return (_condition ? TRUE : FALSE); - } - } - - public static abstract class InstructionMatcher{ - - private final String description; - - abstract InstructionMatch matches(Instruction _instruction); - - public InstructionMatch matches(Instruction _instruction, InstructionMatcher _instructionMatcher) { - if (matches(_instruction.getReal()).ok) { - if (_instruction.getNextExpr() != null) { - return (_instructionMatcher.matches(_instruction.getNextExpr().getReal())); - } - } - - return (InstructionMatch.FALSE); - } - - public InstructionMatcher(String _description) { - description = _description; - } - - public String getDescription() { - return (description); - } - } - - public class AssignableInstructionMatcher extends InstructionMatcher{ - private final Class[] classes; - - public AssignableInstructionMatcher(Class... _classes) { - super("AssignableInstructionMatcher"); - classes = _classes; - } - - @Override public InstructionMatch matches(Instruction _instruction) { - for (final Class c : classes) { - if (c.isAssignableFrom(_instruction.getClass())) { - return (InstructionMatch.TRUE); - - } - } - - return (InstructionMatch.TRUE); - } - } - - public static final InstructionMatcher assignToLocalVariable = new InstructionMatcher("Assign to local variable"){ - @Override public InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof AssignToLocalVariable)); - } - }; - - public static final InstructionMatcher constant = new InstructionMatcher("Constant "){ - @Override public InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof Constant)); - } - }; - - public static final InstructionMatcher assignToArrayElement = new InstructionMatcher("Assign to array element"){ - @Override public InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof AssignToArrayElement)); - } - }; - - public static final InstructionMatcher methodCall = new InstructionMatcher("Method Call"){ - @Override public InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof MethodCall)); - } - }; - - public static final InstructionMatcher longHandIncLocalVariable = new InstructionMatcher("Long hand increment of local variable"){ - /** - *
      -       *                                                   
      -       *                  / iload         
      -       *  istore - iadd                       
      -       *                  \ i_const_1   
      -       *                  
      -       *                          / iload         
      -       *  istore - (?2i) - iadd                       
      -       *                          \ i_const_1    
      -       *
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof AssignToLocalVariable) { - final AssignToLocalVariable assign = (AssignToLocalVariable) _instruction; - Instruction child = ((Instruction) assign).getFirstChild(); - - if (child instanceof CastOperator) { - child = child.getFirstChild(); - } - - if (child instanceof I_IADD) { - final I_IADD add = (I_IADD) child; - final Instruction lhs = add.getLhs(); - final Instruction rhs = add.getRhs(); - if (lhs instanceof AccessLocalVariable) { - final AccessLocalVariable access = (AccessLocalVariable) lhs; - if (access.getLocalVariableTableIndex() == assign.getLocalVariableTableIndex()) { - if (rhs instanceof I_ICONST_1) { - return (InstructionMatch.TRUE); - } - } - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher longHandDecLocalVariable = new InstructionMatcher("Long hand decrement of local variable"){ - /** - *
      -       *                                                   
      -       *                  / iload         
      -       *  istore - isub                       
      -       *                  \ i_const_1   
      -       *                  
      -       *                          / iload         
      -       *  istore - (?2i) - isub                       
      -       *                          \ i_const_1    
      -       *
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof AssignToLocalVariable) { - final AssignToLocalVariable assign = (AssignToLocalVariable) _instruction; - Instruction child = ((Instruction) assign).getFirstChild(); - - if (child instanceof CastOperator) { - child = child.getFirstChild(); - } - - if (child instanceof I_ISUB) { - final I_ISUB add = (I_ISUB) child; - final Instruction lhs = add.getLhs(); - final Instruction rhs = add.getRhs(); - if (lhs instanceof AccessLocalVariable) { - final AccessLocalVariable access = (AccessLocalVariable) lhs; - if (access.getLocalVariableTableIndex() == assign.getLocalVariableTableIndex()) { - if (rhs instanceof I_ICONST_1) { - return (InstructionMatch.TRUE); - } - } - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher fieldPlusOne = new InstructionMatcher("Field Plus One"){ - /** - *
                                                     
      -       *                   / getfield       
      -       *         i2 iadd                          
      -       *                   \ i_const_1    
      -       *                         
      -       *              / getfield  
      -       *         iadd              
      -       *              \ i_const_1    
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - - if (_instruction instanceof CastOperator) { - final CastOperator topCastOperator = (CastOperator) _instruction; - _instruction = topCastOperator.getFirstChild().getReal(); - } - - if (_instruction instanceof I_IADD) { - final I_IADD add = (I_IADD) _instruction; - final Instruction addLhs = add.getLhs().getReal(); - final Instruction addRhs = add.getRhs().getReal(); - if (addLhs instanceof AccessInstanceField) { - if (addRhs instanceof I_ICONST_1) { - return (InstructionMatch.TRUE); - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher fieldMinusOne = new InstructionMatcher("Field minus 1"){ - /** - *
                                                     
      -       *                   / getfield       
      -       *         i2 isub                          
      -       *                   \ i_const_1    
      -       *                         
      -       *              / getfield  
      -       *         isub              
      -       *              \ i_const_1    
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - - if (_instruction instanceof CastOperator) { - final CastOperator topCastOperator = (CastOperator) _instruction; - _instruction = topCastOperator.getFirstChild().getReal(); - } - - if (_instruction instanceof I_ISUB) { - final I_ISUB add = (I_ISUB) _instruction; - final Instruction addLhs = add.getLhs().getReal(); - final Instruction addRhs = add.getRhs().getReal(); - if (addLhs instanceof AccessInstanceField) { - if (addRhs instanceof I_ICONST_1) { - return (InstructionMatch.TRUE); - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher fieldArrayElementAccess = new InstructionMatcher("Field array element access"){ - /** - * - *
                                                      
      -       *                         
      -       *              / getfield  
      -       *         iaload             
      -       *              \ i_load    
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof AccessArrayElement) { - final AccessArrayElement accessArrayElement = (AccessArrayElement) _instruction; - final Instruction addLhs = accessArrayElement.getArrayRef().getReal(); - // Instruction addRhs = accessArrayElement.getArrayIndex().getReal(); - if (addLhs instanceof AccessInstanceField) { - - return (InstructionMatch.TRUE); - - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher fieldArrayElementPlusOne = new InstructionMatcher("field array element plus one"){ - /** - *
                                                      
      -       *                                         [       / getfield - aload_0 ]
      -       *              / [fieldArrayElementAccess][ iaload                     ]
      -       *         iadd                            [       \ iload              ]
      -       *              \ iconst_1    
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof I_IADD) { - final I_IADD accessArrayElement = (I_IADD) _instruction; - if (accessArrayElement.getLhs() != null) { - final Instruction addLhs = accessArrayElement.getLhs().getReal(); - if (fieldArrayElementAccess.matches(addLhs).ok) { - final Instruction addRhs = accessArrayElement.getRhs().getReal(); - if (addRhs instanceof I_ICONST_1) { - return (InstructionMatch.TRUE); - } - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher fieldArrayElementMinusOne = new InstructionMatcher("field array element minus one"){ - /** - *
                                                      
      -       *                                         [       / getfield - aload_0 ]
      -       *              / [fieldArrayElementAccess][ iaload                     ]
      -       *         isub                            [       \ iload              ]
      -       *              \ iconst_1    
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof I_ISUB) { - final I_ISUB accessArrayElement = (I_ISUB) _instruction; - final Instruction addLhs = accessArrayElement.getLhs().getReal(); - if (fieldArrayElementAccess.matches(addLhs).ok) { - final Instruction addRhs = accessArrayElement.getRhs().getReal(); - if (addRhs instanceof I_ICONST_1) { - return (InstructionMatch.TRUE); - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher longHandFieldArrayElementIncrement = new InstructionMatcher( - "long hand field array element increment"){ - /** - * //iastore{9:getfield{8:aload_0} ,12:iload_1 ,17:iadd{14:iaload{*9:getfield{8:aload_0} ,*12:iload_1} ,16:iconst_1}} - *
                                                      
      -       *                         
      -       *                  / getfield - aload  
      -       *         iastore -  iload                                                    
      -       *                  \ [fieldArrayElementPlusOne]     
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof AssignToArrayElement) { - final AssignToArrayElement accessArrayElement = (AssignToArrayElement) _instruction; - final Instruction arrayRef = accessArrayElement.getArrayRef().getReal(); - // Instruction arrayIndex = accessArrayElement.getArrayIndex().getReal(); - final Instruction value = accessArrayElement.getValue().getReal(); - - // Instruction addRhs = accessArrayElement.getArrayIndex().getReal(); - if (arrayRef instanceof AccessInstanceField) { - if (fieldArrayElementPlusOne.matches(value).ok) { - return (InstructionMatch.TRUE); - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher longHandFieldArrayElementDecrement = new InstructionMatcher( - "long hand field array element decrement"){ - /** - * //iastore{9:getfield{8:aload_0} ,12:iload_1 ,17:iadd{14:iaload{*9:getfield{8:aload_0} ,*12:iload_1} ,16:iconst_1}} - *
                                                      
      -       *                         
      -       *                  / getfield - aload  
      -       *         iastore -  iload                                                    
      -       *                  \ [fieldArrayElementPlusOne]     
      -       * 
      - */ - @Override public InstructionMatch matches(Instruction _instruction) { - if (_instruction instanceof AssignToArrayElement) { - final AssignToArrayElement accessArrayElement = (AssignToArrayElement) _instruction; - final Instruction arrayRef = accessArrayElement.getArrayRef().getReal(); - // Instruction arrayIndex = accessArrayElement.getArrayIndex().getReal(); - final Instruction value = accessArrayElement.getValue().getReal(); - // Instruction addRhs = accessArrayElement.getArrayIndex().getReal(); - if (arrayRef instanceof AccessInstanceField) { - if (fieldArrayElementMinusOne.matches(value).ok) { - return (InstructionMatch.TRUE); - } - } - } - - return (InstructionMatch.FALSE); - } - }; - - public static final InstructionMatcher accessLocalVariable = new InstructionMatcher("access to local variable"){ - @Override InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof AccessLocalVariable)); - } - }; - - public static final InstructionMatcher inc = new InstructionMatcher("inc"){ - @Override InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof I_IINC)); - } - }; - - public static final InstructionMatcher cast = new InstructionMatcher("cast"){ - @Override InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof CastOperator)); - } - }; - - public static final InstructionMatcher accessInstanceField = new InstructionMatcher("access instance field"){ - @Override InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof AccessInstanceField)); - } - }; - - public static final InstructionMatcher assignToInstanceField = new InstructionMatcher("assign to instance field"){ - @Override InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof AssignToInstanceField)); - } - }; - - public static final InstructionMatcher iadd = new InstructionMatcher("iadd"){ - @Override InstructionMatch matches(Instruction _instruction) { - return (InstructionMatch.test(_instruction instanceof I_IADD)); - } - }; -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionSet.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionSet.java deleted file mode 100644 index 4faf88df..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionSet.java +++ /dev/null @@ -1,3923 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.instruction; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; - -import com.amd.aparapi.internal.model.MethodModel; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.Entry; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.FieldEntry; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodEntry; -import com.amd.aparapi.internal.model.ClassModel.LocalVariableTableEntry; -import com.amd.aparapi.internal.model.ClassModel.LocalVariableInfo; -import com.amd.aparapi.internal.reader.ByteReader; - -public class InstructionSet{ - - public static enum LoadSpec { - NONE, // - F, // Float - D, // Double - I, // Integer - L, // Long - A, // Array - O, // Object - } - - public static enum StoreSpec { - NONE, // - F, // Float - D, // Double - I, // Integer - L, // Long - A, // Array - O, // Object - } - - public static enum TypeSpec { - NONE("none", "none", 0, 0), // - Z("Z", "boolean", 4, 1), // Note 'Z' is the java code for 'boolean' type - C("C", "char", 2, 1), // - F("F", "float", 4, 1), // - D("D", "double", 8, 2), // - B("B", "byte", 1, 1), // - S("S", "short", 2, 1), // - I("I", "int", 4, 1), // - L("L", "long", 8, 1), // - J("J", "long", 8, 1), // Note J is the java code for 'long' type - A("A", "array", 4, 1), // - O("O", "object", 4, 1), - N("N", "null", 4, 1), - IorForS("IorForS", "int, float or String depending on constant pool entry", 4, 1), - LorD("LorD", "long or float depending upon the constant pool entry", 8, 2), - RA("RA", "return address", 4, 1), - UNKNOWN("UNKNOWN", "unknown", -1, -1), - ARGS("ARGS", "args to method call", -1, -1); - - private final String longName; - - private final String shortName; - - private final int size; - - private final int slots; - - private TypeSpec(String _shortName, String _longName, int _size, int _slots) { - shortName = _shortName; - longName = _longName; - size = _size; - slots = _slots; - } - - public int getSize() { - return (size); - } - - public int getSlots() { - return (slots); - } - - public String getLongName() { - return (longName); - } - - public String getShortName() { - return (shortName); - } - } - - /** - * Represents an Operator - * - * @author gfrost - * - */ - - public static enum Operator { - NONE, - LogicalOr(true, "||"), // - LogicalAnd(true, "&&", LogicalOr), // - Equal(true, "=="), // - NotEqual(true, "!=", Equal), // - LessThan(true, "<"), // - GreaterThanOrEqual(true, ">=", LessThan), // - GreaterThan(true, ">"), // - LessThanOrEqual(true, "<=", GreaterThan), // - EqualNULL(true, "NULL=="), - NotEqualNULL(true, "NULL!=", EqualNULL), // - - BitwiseOr(true, "|"), // - BitwiseAnd(true, "&"), // - BitwiseXor(true, "^"), - - LeftShift(true, "<<"), // - ArithmeticRightShift(true, ">>>"), // - LogicalRightShift(true, ">>"), // was >>> but this caused issues in opencl - - Add(true, "+"), // - Sub(true, "-"), // - - Div(true, "/"), // - Rem(true, "%"), // - Mul(true, "*"), // - - Neg(false, "-"), // - Pos(false, "+"), // - - I2FCast(false, "(float)"), - I2LCast(false, "(long)"), // - I2DCast(false, "(double)"), // - L2ICast(false, "(int)"), // - L2FCast(false, "(float)"), // - L2DCast(false, "(double)"), // - F2ICast(false, "(int)"), // - F2LCast(false, "(long)"), // - F2DCast(false, "(double)"), // - D2ICast(false, "(int)"), // - D2LCast(false, "(long)"), // - D2FCast(false, "(float)"), // - I2BCast(false, "(byte)"), // - I2CCast(false, "(char)"), // - I2SCast(false, "(short)"); - - private final String text; - - private final boolean binary; - - private Operator compliment; - - private Operator(boolean _binary, String _text) { - - text = _text; - binary = _binary; - } - - private Operator(boolean _binary, String _text, Operator _c) { - this(_binary, _text); - compliment = _c; - compliment.compliment = this; - } - - private Operator() { - this(false, null); - } - - public String getText() { - return text; - } - - public Operator getCompliment() { - return (compliment); - } - - public String getText(boolean _invert) { - return (_invert ? compliment.getText() : getText()); - } - - public boolean isBinary() { - return (binary); - - } - - public boolean isUnary() { - return (!equals(Operator.NONE) && !isBinary()); - - } - } - - public static enum PushSpec { - NONE, // - UNKNOWN, // - I(TypeSpec.I), // - II(TypeSpec.I, TypeSpec.I), // - III(TypeSpec.I, TypeSpec.I, TypeSpec.I), // - IIII(TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I), // - IIIII(TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I), // - IIIIII(TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I), // - L(TypeSpec.L), // - F(TypeSpec.F), // - D(TypeSpec.D), // - O(TypeSpec.O), // - A(TypeSpec.A), // - N(TypeSpec.N), // - IorForS(TypeSpec.IorForS), // - LorD(TypeSpec.LorD), // - RA(TypeSpec.RA); - - private PushSpec(TypeSpec... _types) { - types = _types; - } - - private final TypeSpec[] types; - - public int getStackAdjust() { - return (types.length); - } - } - - public static enum PopSpec { - NONE, // - UNKNOWN(TypeSpec.UNKNOWN), // - I(TypeSpec.I), // - II(TypeSpec.I, TypeSpec.I), // - III(TypeSpec.I, TypeSpec.I, TypeSpec.I), // - IIII(TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I), // - IIIII(TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I, TypeSpec.I), // - L(TypeSpec.L), // - LL(TypeSpec.L, TypeSpec.L), // - F(TypeSpec.F), // - FF(TypeSpec.F, TypeSpec.F), // - D(TypeSpec.D), // - DD(TypeSpec.D, TypeSpec.D), // - O(TypeSpec.O), // - OO(TypeSpec.O, TypeSpec.O), // - A(TypeSpec.A), // - AI(TypeSpec.A, TypeSpec.I), // - AII(TypeSpec.A, TypeSpec.I, TypeSpec.I), // - AIF(TypeSpec.A, TypeSpec.I, TypeSpec.F), // - AID(TypeSpec.A, TypeSpec.I, TypeSpec.D), // - AIL(TypeSpec.A, TypeSpec.I, TypeSpec.L), // - AIC(TypeSpec.A, TypeSpec.I, TypeSpec.C), // - AIS(TypeSpec.A, TypeSpec.I, TypeSpec.S), // - AIB(TypeSpec.A, TypeSpec.I, TypeSpec.B), // - AIO(TypeSpec.A, TypeSpec.I, TypeSpec.O), // - LI(TypeSpec.L, TypeSpec.I), // - OUNKNOWN(TypeSpec.O, TypeSpec.UNKNOWN), // - ARGS(TypeSpec.ARGS), // - OARGS(TypeSpec.O, TypeSpec.ARGS), // - ; - - private PopSpec(TypeSpec... _types) { - types = _types; - } - - private final TypeSpec[] types; - - public int getStackAdjust() { - return (types.length); - } - } - - public static enum ImmediateSpec { - NONE("NONE"), // - UNKNOWN("UNKNOWN"), // - Bconst("byte constant value", TypeSpec.B), // - Sconst("short constant value", TypeSpec.S), // - Bcpci("byte constant pool constant index", TypeSpec.B), // - Scpci("short constant pool constant index", TypeSpec.S), // - Icpci("int constant pool index", TypeSpec.I), // - Blvti("byte local variable table index", TypeSpec.B), - Spc("short pc", TypeSpec.S), - Ipc("int pc", TypeSpec.I), - Scpfi("short constant pool field index", TypeSpec.S), - Scpmi("short constant pool method index", TypeSpec.S), - ScpmiBB("short constant pool method index, byte count, byte (always zero)", TypeSpec.S, TypeSpec.B, TypeSpec.B), - ScpciBdim("short constant pool class index, byte dimensions", TypeSpec.S, TypeSpec.B), - BlvtiBconst("byte local variable table index, byte constant value", TypeSpec.B, TypeSpec.B); - - private final String name; - - private ImmediateSpec(String _name, TypeSpec... _types) { - - name = _name; - types = _types; - } - - private final TypeSpec[] types; - - public String getName() { - return (name); - } - - public TypeSpec[] getTypes() { - return (types); - } - } - - public static enum ByteCode { - // name, operation type, immediateOperands, pop operands, push operands - NOP(null, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, PopSpec.NONE, PushSpec.NONE, Operator.NONE), // - ACONST_NULL(I_ACONST_NULL.class, PushSpec.N), // - ICONST_M1(I_ICONST_M1.class, PushSpec.I), // - ICONST_0(I_ICONST_0.class, PushSpec.I), // - ICONST_1(I_ICONST_1.class, PushSpec.I), // - ICONST_2(I_ICONST_2.class, PushSpec.I), // - ICONST_3(I_ICONST_3.class, PushSpec.I), // - ICONST_4(I_ICONST_4.class, PushSpec.I), // - ICONST_5(I_ICONST_5.class, PushSpec.I), // - LCONST_0(I_LCONST_0.class, PushSpec.L), // - LCONST_1(I_LCONST_1.class, PushSpec.L), // - FCONST_0(I_FCONST_0.class, PushSpec.F), // - FCONST_1(I_FCONST_1.class, PushSpec.F), // - FCONST_2(I_FCONST_2.class, PushSpec.F), // - DCONST_0(I_DCONST_0.class, PushSpec.D), // - DCONST_1(I_DCONST_1.class, PushSpec.D), // - BIPUSH(I_BIPUSH.class, ImmediateSpec.Bconst, PushSpec.I), // - SIPUSH(I_SIPUSH.class, ImmediateSpec.Sconst, PushSpec.I), // - LDC(I_LDC.class, ImmediateSpec.Bcpci, PushSpec.IorForS), // - LDC_W(I_LDC_W.class, ImmediateSpec.Scpci, PushSpec.IorForS), // - LDC2_W(I_LDC2_W.class, ImmediateSpec.Scpci, PushSpec.LorD), // - ILOAD(I_ILOAD.class, LoadSpec.I, ImmediateSpec.Blvti, PushSpec.I), // - LLOAD(I_LLOAD.class, LoadSpec.L, ImmediateSpec.Blvti, PushSpec.L), // - FLOAD(I_FLOAD.class, LoadSpec.F, ImmediateSpec.Blvti, PushSpec.F), // - DLOAD(I_DLOAD.class, LoadSpec.F, ImmediateSpec.Blvti, PushSpec.D), // - ALOAD(I_ALOAD.class, LoadSpec.A, ImmediateSpec.Blvti, PushSpec.O), // - ILOAD_0(I_ILOAD_0.class, LoadSpec.I, PushSpec.I), // - ILOAD_1(I_ILOAD_1.class, LoadSpec.I, PushSpec.I), // - ILOAD_2(I_ILOAD_2.class, LoadSpec.I, PushSpec.I), // - ILOAD_3(I_ILOAD_3.class, LoadSpec.I, PushSpec.I), // - LLOAD_0(I_LLOAD_0.class, LoadSpec.L, PushSpec.L), // - LLOAD_1(I_LLOAD_1.class, LoadSpec.L, PushSpec.L), // - LLOAD_2(I_LLOAD_2.class, LoadSpec.L, PushSpec.L), // - LLOAD_3(I_LLOAD_3.class, LoadSpec.L, PushSpec.L), // - FLOAD_0(I_FLOAD_0.class, LoadSpec.F, PushSpec.F), // - FLOAD_1(I_FLOAD_1.class, LoadSpec.F, PushSpec.F), // - FLOAD_2(I_FLOAD_2.class, LoadSpec.F, PushSpec.F), // - FLOAD_3(I_FLOAD_3.class, LoadSpec.F, PushSpec.F), // - DLOAD_0(I_DLOAD_0.class, LoadSpec.D, PushSpec.D), // - DLOAD_1(I_DLOAD_1.class, LoadSpec.D, PushSpec.D), // - DLOAD_2(I_DLOAD_2.class, LoadSpec.D, PushSpec.D), // - DLOAD_3(I_DLOAD_3.class, LoadSpec.D, PushSpec.D), // - ALOAD_0(I_ALOAD_0.class, LoadSpec.A, PushSpec.O), // - ALOAD_1(I_ALOAD_1.class, LoadSpec.A, PushSpec.O), // - ALOAD_2(I_ALOAD_2.class, LoadSpec.A, PushSpec.O), // - ALOAD_3(I_ALOAD_3.class, LoadSpec.A, PushSpec.O), // - IALOAD(I_IALOAD.class, PopSpec.AI, PushSpec.I), // - LALOAD(I_LALOAD.class, PopSpec.AI, PushSpec.L), // - FALOAD(I_FALOAD.class, PopSpec.AI, PushSpec.F), // - DALOAD(I_DALOAD.class, PopSpec.AI, PushSpec.D), // - AALOAD(I_AALOAD.class, PopSpec.AI, PushSpec.A), // - BALOAD(I_BALOAD.class, PopSpec.AI, PushSpec.I), // - CALOAD(I_CALOAD.class, PopSpec.AI, PushSpec.I), // - SALOAD(I_SALOAD.class, PopSpec.AI, PushSpec.I), // - ISTORE(I_ISTORE.class, StoreSpec.I, ImmediateSpec.Blvti, PopSpec.I), // - LSTORE(I_LSTORE.class, StoreSpec.L, ImmediateSpec.Blvti, PopSpec.L), // - FSTORE(I_FSTORE.class, StoreSpec.F, ImmediateSpec.Blvti, PopSpec.F), // - DSTORE(I_DSTORE.class, StoreSpec.D, ImmediateSpec.Blvti, PopSpec.D), // - ASTORE(I_ASTORE.class, StoreSpec.A, ImmediateSpec.Blvti, PopSpec.O), // - ISTORE_0(I_ISTORE_0.class, StoreSpec.I, PopSpec.I), // - ISTORE_1(I_ISTORE_1.class, StoreSpec.I, PopSpec.I), // - ISTORE_2(I_ISTORE_2.class, StoreSpec.I, PopSpec.I), // - ISTORE_3(I_ISTORE_3.class, StoreSpec.I, PopSpec.I), // - LSTORE_0(I_LSTORE_0.class, StoreSpec.L, PopSpec.L), // - LSTORE_1(I_LSTORE_1.class, StoreSpec.L, PopSpec.L), // - LSTORE_2(I_LSTORE_2.class, StoreSpec.L, PopSpec.L), // - LSTORE_3(I_LSTORE_3.class, StoreSpec.L, PopSpec.L), // - FSTORE_0(I_FSTORE_0.class, StoreSpec.F, PopSpec.F), // - FSTORE_1(I_FSTORE_1.class, StoreSpec.F, PopSpec.F), // - FSTORE_2(I_FSTORE_2.class, StoreSpec.F, PopSpec.F), // - FSTORE_3(I_FSTORE_3.class, StoreSpec.F, PopSpec.F), // - DSTORE_0(I_DSTORE_0.class, StoreSpec.D, PopSpec.D), // - DSTORE_1(I_DSTORE_1.class, StoreSpec.D, PopSpec.D), // - DSTORE_2(I_DSTORE_2.class, StoreSpec.D, PopSpec.D), // - DSTORE_3(I_DSTORE_3.class, StoreSpec.D, PopSpec.D), // - ASTORE_0(I_ASTORE_0.class, StoreSpec.A, PopSpec.O), // - ASTORE_1(I_ASTORE_1.class, StoreSpec.A, PopSpec.O), // - ASTORE_2(I_ASTORE_2.class, StoreSpec.A, PopSpec.O), // - ASTORE_3(I_ASTORE_3.class, StoreSpec.A, PopSpec.O), // - IASTORE(I_IASTORE.class, PopSpec.AII), // - LASTORE(I_LASTORE.class, PopSpec.AIL), // - FASTORE(I_FASTORE.class, PopSpec.AIF), // - DASTORE(I_DASTORE.class, PopSpec.AID), // - AASTORE(I_AASTORE.class, PopSpec.AIO), // - BASTORE(I_BASTORE.class, PopSpec.AIB), // - CASTORE(I_CASTORE.class, PopSpec.AIC), // - SASTORE(I_SASTORE.class, PopSpec.AIS), // - POP(I_POP.class, PopSpec.I), // - POP2(I_POP2.class, PopSpec.II), // - DUP(I_DUP.class, PopSpec.I, PushSpec.II), // - DUP_X1(I_DUP_X1.class, PopSpec.II, PushSpec.III), // - DUP_X2(I_DUP_X2.class, PopSpec.III, PushSpec.IIII), // - DUP2(I_DUP2.class, PopSpec.II, PushSpec.IIII), // - DUP2_X1(I_DUP2_X1.class, PopSpec.III, PushSpec.IIIII), // - DUP2_X2(I_DUP2_X2.class, PopSpec.IIII, PushSpec.IIIIII), // - SWAP(I_SWAP.class, PopSpec.II, PushSpec.II), // ..., value2, value1 => ..., value1, - // value2 - IADD(I_IADD.class, PopSpec.II, PushSpec.I, Operator.Add), // - LADD(I_LADD.class, PopSpec.LL, PushSpec.L, Operator.Add), // - FADD(I_FADD.class, PopSpec.FF, PushSpec.F, Operator.Add), // - DADD(I_DADD.class, PopSpec.DD, PushSpec.D, Operator.Add), // - ISUB(I_ISUB.class, PopSpec.II, PushSpec.I, Operator.Sub), // - LSUB(I_LSUB.class, PopSpec.LL, PushSpec.L, Operator.Sub), // - FSUB(I_FSUB.class, PopSpec.FF, PushSpec.F, Operator.Sub), // - DSUB(I_DSUB.class, PopSpec.DD, PushSpec.D, Operator.Sub), // - IMUL(I_IMUL.class, PopSpec.II, PushSpec.I, Operator.Mul), // - LMUL(I_LMUL.class, PopSpec.LL, PushSpec.L, Operator.Mul), // - FMUL(I_FMUL.class, PopSpec.FF, PushSpec.F, Operator.Mul), // - DMUL(I_DMUL.class, PopSpec.DD, PushSpec.D, Operator.Mul), // - IDIV(I_IDIV.class, PopSpec.II, PushSpec.I, Operator.Div), // - LDIV(I_LDIV.class, PopSpec.LL, PushSpec.L, Operator.Div), // - FDIV(I_FDIV.class, PopSpec.FF, PushSpec.F, Operator.Div), // - DDIV(I_DDIV.class, PopSpec.DD, PushSpec.D, Operator.Div), // - IREM(I_IREM.class, PopSpec.II, PushSpec.I, Operator.Rem), // - LREM(I_LREM.class, PopSpec.LL, PushSpec.L, Operator.Rem), // - FREM(I_FREM.class, PopSpec.FF, PushSpec.F, Operator.Rem), // - DREM(I_DREM.class, PopSpec.DD, PushSpec.D, Operator.Rem), // - INEG(I_INEG.class, PopSpec.I, PushSpec.I, Operator.Neg), // - LNEG(I_LNEG.class, PopSpec.L, PushSpec.L, Operator.Neg), // - FNEG(I_FNEG.class, PopSpec.F, PushSpec.F, Operator.Neg), // - DNEG(I_DNEG.class, PopSpec.D, PushSpec.D, Operator.Neg), // - ISHL(I_ISHL.class, PopSpec.II, PushSpec.I, Operator.LeftShift), // - LSHL(I_LSHL.class, PopSpec.LI, PushSpec.L, Operator.LeftShift), // - ISHR(I_ISHR.class, PopSpec.II, PushSpec.I, Operator.LogicalRightShift), // - LSHR(I_LSHR.class, PopSpec.LI, PushSpec.L, Operator.LogicalRightShift), // - IUSHR(I_IUSHR.class, PopSpec.II, PushSpec.I, Operator.ArithmeticRightShift), // - LUSHR(I_LUSHR.class, PopSpec.LI, PushSpec.L, Operator.ArithmeticRightShift), // - IAND(I_IAND.class, PopSpec.II, PushSpec.I, Operator.BitwiseAnd), // - LAND(I_LAND.class, PopSpec.LL, PushSpec.L, Operator.BitwiseAnd), // - IOR(I_IOR.class, PopSpec.II, PushSpec.I, Operator.BitwiseOr), // - LOR(I_LOR.class, PopSpec.LL, PushSpec.L, Operator.BitwiseOr), // - IXOR(I_IXOR.class, PopSpec.II, PushSpec.I, Operator.BitwiseXor), // - LXOR(I_LXOR.class, PopSpec.LL, PushSpec.L, Operator.BitwiseXor), // - IINC(I_IINC.class, ImmediateSpec.BlvtiBconst), // - I2L(I_I2L.class, PopSpec.I, PushSpec.L, Operator.I2LCast), // - I2F(I_I2F.class, PopSpec.I, PushSpec.F, Operator.I2FCast), // - I2D(I_I2D.class, PopSpec.I, PushSpec.D, Operator.I2DCast), // - L2I(I_L2I.class, PopSpec.L, PushSpec.I, Operator.L2ICast), // - L2F(I_L2F.class, PopSpec.L, PushSpec.F, Operator.L2FCast), // - L2D(I_L2D.class, PopSpec.L, PushSpec.D, Operator.L2DCast), // - F2I(I_F2I.class, PopSpec.F, PushSpec.I, Operator.F2ICast), // - F2L(I_F2L.class, PopSpec.F, PushSpec.L, Operator.F2LCast), // - F2D(I_F2D.class, PopSpec.F, PushSpec.D, Operator.F2DCast), // - D2I(I_D2I.class, PopSpec.D, PushSpec.I, Operator.D2ICast), // - D2L(I_D2L.class, PopSpec.D, PushSpec.L, Operator.D2LCast), // - D2F(I_D2F.class, PopSpec.D, PushSpec.F, Operator.D2FCast), // - I2B(I_I2B.class, PopSpec.I, PushSpec.I, Operator.I2BCast), // - I2C(I_I2C.class, PopSpec.I, PushSpec.I, Operator.I2CCast), // - I2S(I_I2S.class, PopSpec.I, PushSpec.I, Operator.I2SCast), // - LCMP(I_LCMP.class, PopSpec.LL, PushSpec.I, Operator.Sub), // - FCMPL(I_FCMPL.class, PopSpec.FF, PushSpec.I, Operator.LessThan), // - FCMPG(I_FCMPG.class, PopSpec.FF, PushSpec.I, Operator.GreaterThan), // - DCMPL(I_DCMPL.class, PopSpec.DD, PushSpec.I, Operator.LessThan), // - DCMPG(I_DCMPG.class, PopSpec.DD, PushSpec.I, Operator.GreaterThan), // - IFEQ(I_IFEQ.class, ImmediateSpec.Spc, PopSpec.I, Operator.Equal), // - IFNE(I_IFNE.class, ImmediateSpec.Spc, PopSpec.I, Operator.NotEqual), // - IFLT(I_IFLT.class, ImmediateSpec.Spc, PopSpec.I, Operator.LessThan), // - IFGE(I_IFGE.class, ImmediateSpec.Spc, PopSpec.I, Operator.GreaterThanOrEqual), // - IFGT(I_IFGT.class, ImmediateSpec.Spc, PopSpec.I, Operator.GreaterThan), // - IFLE(I_IFLE.class, ImmediateSpec.Spc, PopSpec.I, Operator.LessThanOrEqual), // - IF_ICMPEQ(I_IF_ICMPEQ.class, ImmediateSpec.Sconst, PopSpec.II, Operator.Equal), // - IF_ICMPNE(I_IF_ICMPNE.class, ImmediateSpec.Spc, PopSpec.II, Operator.NotEqual), // - IF_ICMPLT(I_IF_ICMPLT.class, ImmediateSpec.Spc, PopSpec.II, Operator.LessThan), // - IF_ICMPGE(I_IF_ICMPGE.class, ImmediateSpec.Spc, PopSpec.II, Operator.GreaterThanOrEqual), // - IF_ICMPGT(I_IF_ICMPGT.class, ImmediateSpec.Spc, PopSpec.II, Operator.GreaterThan), // - IF_ICMPLE(I_IF_ICMPLE.class, ImmediateSpec.Spc, PopSpec.II, Operator.LessThanOrEqual), // - IF_ACMPEQ(I_IF_ACMPEQ.class, ImmediateSpec.Spc, PopSpec.OO, Operator.Equal), // - IF_ACMPNE(I_IF_ACMPNE.class, ImmediateSpec.Spc, PopSpec.OO, Operator.NotEqual), // - GOTO(I_GOTO.class, ImmediateSpec.Spc), // - JSR(I_JSR.class, ImmediateSpec.Spc, PushSpec.RA), // - RET(I_RET.class, ImmediateSpec.Bconst), // - TABLESWITCH(I_TABLESWITCH.class, ImmediateSpec.UNKNOWN, PopSpec.I), // - LOOKUPSWITCH(I_LOOKUPSWITCH.class, ImmediateSpec.UNKNOWN, PopSpec.I), // - IRETURN(I_IRETURN.class, PopSpec.I), // - LRETURN(I_LRETURN.class, PopSpec.L), // - FRETURN(I_FRETURN.class, PopSpec.F), // - DRETURN(I_DRETURN.class, PopSpec.D), // - ARETURN(I_ARETURN.class, PopSpec.O), // - RETURN(I_RETURN.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, PopSpec.NONE, PushSpec.NONE, Operator.NONE), // - GETSTATIC(I_GETSTATIC.class, ImmediateSpec.Scpfi, PushSpec.UNKNOWN), // - PUTSTATIC(I_PUTSTATIC.class, ImmediateSpec.Scpfi, PopSpec.UNKNOWN), // - GETFIELD(I_GETFIELD.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Scpfi, PopSpec.O, PushSpec.UNKNOWN, Operator.NONE), // - PUTFIELD(I_PUTFIELD.class, ImmediateSpec.Scpfi, PopSpec.OUNKNOWN), // - INVOKEVIRTUAL(I_INVOKEVIRTUAL.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Scpmi, PopSpec.OARGS, PushSpec.UNKNOWN, - Operator.NONE), // - INVOKESPECIAL(I_INVOKESPECIAL.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Scpmi, PopSpec.OARGS, PushSpec.UNKNOWN, - Operator.NONE), // - INVOKESTATIC(I_INVOKESTATIC.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Scpmi, PopSpec.ARGS, PushSpec.UNKNOWN, - Operator.NONE), // - INVOKEINTERFACE(I_INVOKEINTERFACE.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.ScpmiBB, PopSpec.OARGS, - PushSpec.UNKNOWN, Operator.NONE), // - INVOKEDYNAMIC(I_INVOKEDYNAMIC.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.ScpmiBB, PopSpec.OARGS, PushSpec.UNKNOWN, - Operator.NONE), // - - NEW(I_NEW.class, ImmediateSpec.Scpci, PushSpec.O), // - NEWARRAY(I_NEWARRAY.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Bconst, PopSpec.I, PushSpec.A, Operator.NONE), // - ANEWARRAY(I_ANEWARRAY.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Sconst, PopSpec.I, PushSpec.A, Operator.NONE), // 189 - ARRAYLENGTH(I_ARRAYLENGTH.class, PopSpec.A, PushSpec.I), // 190 - ATHROW(I_ATHROW.class, PopSpec.O, PushSpec.O), // 191 - CHECKCAST(I_CHECKCAST.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Scpci, PopSpec.O, PushSpec.O, Operator.NONE), // 192 - INSTANCEOF(I_INSTANCEOF.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.Scpci, PopSpec.O, PushSpec.I, Operator.NONE), // 193 - MONITORENTER(I_MONITORENTER.class, PopSpec.O), // 194 - MONITOREXIT(I_MONITOREXIT.class, PopSpec.O), // 195 - WIDE(I_WIDE.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.UNKNOWN, PopSpec.UNKNOWN, PushSpec.UNKNOWN, Operator.NONE), // 196 - MULTIANEWARRAY(I_MULTIANEWARRAY.class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.ScpciBdim, PopSpec.UNKNOWN, PushSpec.A, - Operator.NONE), // 197 - IFNULL(I_IFNULL.class, ImmediateSpec.Spc, PopSpec.O, Operator.EqualNULL), // 198 - IFNONNULL(I_IFNONNULL.class, ImmediateSpec.Spc, PopSpec.O, Operator.NotEqualNULL), // 199 - GOTO_W(I_GOTO_W.class, ImmediateSpec.Ipc), // 200 - JSR_W(I_JSR_W.class, ImmediateSpec.Ipc, PushSpec.RA), // 201 - ILLEGAL_202, // BREAKPOINT("breakpoint"), - ILLEGAL_203, // LDC_QUICK("ldc_quick"), - ILLEGAL_204, // LDC_W_QUICK("ldc_w_quick"), - ILLEGAL_205, // LDC2_W_QUICK("ldc2_w_quick"), - ILLEGAL_206, // GETFIELD_QUICK("getfield_quick"), - ILLEGAL_207, // PUTFIELD_QUICK("putfield_quick"), - ILLEGAL_208, // GETFIELD2_QUICK("getfield2_quick"), - ILLEGAL_209, // PUTFIELD2_QUICK("putfield2_quick"), - ILLEGAL_210, // GETSTATIC_QUICK("getstatic_quick"), - ILLEGAL_211, // PUTSTATIC_QUICK("putstatic_quick"), - ILLEGAL_212, // GETSTATIC2_QUICK("getstatic2_quick"), - ILLEGAL_213, // PUTSTATIC2_QUICK("putstatic2_quick"), - ILLEGAL_214, // INVOKEVIRTUAL_QUICK("invokevirtual_quick"), - ILLEGAL_215, // INVOKENONVIRTUAL_QUICK("invokenonvirtual_quick"), - ILLEGAL_216, // INVOKESUPER_QUICK("invokesuper_quick"), - ILLEGAL_217, // INVOKESTATIC_QUICK("invokestatic_quick"), - ILLEGAL_218, // INVOKEINTERFACE_QUICK("invokeinterface_quick"), - ILLEGAL_219, // INVOKEVIRTUALOBJECT_QUICK("invokevirtualobject_quick"), - ILLEGAL_220, // 220 - ILLEGAL_221, // NEW_QUICK("new_quick"), - ILLEGAL_222, // ANEWARRAY_QUICK("anewarray_quick"), - ILLEGAL_223, // MULTIANEWARRAY_QUICK("multianewarray_quick"), - ILLEGAL_224, // CHECKCAST_QUICK("checkcast_quick"), - ILLEGAL_225, // INSTANCEOF_QUICK("instanceof_quick"), - ILLEGAL_226, // INVOKEVIRTUAL_QUICK_W("invokevirtual_quick_w"), - ILLEGAL_227, // GETFIELD_QUICK_W("getfield_quick_w"), - ILLEGAL_228, // PUTFIELD_QUICK_W("putfield_quick_w"), - ILLEGAL_229, // - ILLEGAL_230, // - ILLEGAL_231, // - ILLEGAL_232, // - ILLEGAL_233, // - ILLEGAL_234, // - ILLEGAL_235, // - ILLEGAL_236, // - ILLEGAL_237, // - ILLEGAL_238, // - ILLEGAL_239, // - ILLEGAL_240, // - ILLEGAL_241, // - ILLEGAL_242, // - ILLEGAL_243, // - ILLEGAL_244, // - ILLEGAL_245, // - ILLEGAL_246, // - ILLEGAL_247, // - ILLEGAL_248, // - ILLEGAL_249, // - ILLEGAL_250, // - ILLEGAL_251, // - ILLEGAL_252, // - ILLEGAL_253, // - ILLEGAL_254, // IMPDEP1("impdep1"), - ILLEGAL_255, // IMPDEP2("impdep2"), - NONE, // - COMPOSITE_IF, // - COMPOSITE_IF_ELSE, // - COMPOSITE_FOR_SUN, // - COMPOSITE_FOR_ECLIPSE, // - COMPOSITE_ARBITRARY_SCOPE, // - COMPOSITE_WHILE, // - CLONE, // - INCREMENT, // - INLINE_ASSIGN, // - MULTI_ASSIGN, // - FAKEGOTO, // - FIELD_ARRAY_ELEMENT_INCREMENT, // - FIELD_ARRAY_ELEMENT_ASSIGN, // - HEAD, // - COMPOSITE_EMPTY_LOOP, // - COMPOSITE_DO_WHILE; - - private final Class clazz; - - private final ImmediateSpec immediate; - - private final PushSpec push; - - private final PopSpec pop; - - private final Operator operator; - - private LoadSpec loadSpec; - - private StoreSpec storeSpec; - - private ByteCode(Class _class, LoadSpec _loadSpec, StoreSpec _storeSpec, ImmediateSpec _immediate, PopSpec _pop, - PushSpec _push, Operator _operator) { - clazz = _class; - immediate = _immediate; - push = _push; - pop = _pop; - operator = _operator; - - loadSpec = _loadSpec; - storeSpec = _storeSpec; - } - - private ByteCode(Class _class, ImmediateSpec _immediate) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, _immediate, PopSpec.NONE, PushSpec.NONE, Operator.NONE); - } - - private ByteCode(Class _class, PushSpec _push) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, PopSpec.NONE, _push, Operator.NONE); - } - - private ByteCode(Class _class, StoreSpec _store, ImmediateSpec _immediate, PopSpec _pop) { - this(_class, LoadSpec.NONE, _store, _immediate, _pop, PushSpec.NONE, Operator.NONE); - } - - private ByteCode(Class _class, StoreSpec _store, PopSpec _pop) { - this(_class, LoadSpec.NONE, _store, ImmediateSpec.NONE, _pop, PushSpec.NONE, Operator.NONE); - } - - private ByteCode(Class _class, ImmediateSpec _immediate, PopSpec _pop) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, _immediate, _pop, PushSpec.NONE, Operator.NONE); - } - - private ByteCode(Class _class, ImmediateSpec _immediate, PopSpec _pop, Operator _operator) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, _immediate, _pop, PushSpec.NONE, _operator); - } - - private ByteCode(Class _class, LoadSpec _load, ImmediateSpec _immediate, PushSpec _push) { - this(_class, _load, StoreSpec.NONE, _immediate, PopSpec.NONE, _push, Operator.NONE); - } - - private ByteCode(Class _class, LoadSpec _load, PushSpec _push) { - this(_class, _load, StoreSpec.NONE, ImmediateSpec.NONE, PopSpec.NONE, _push, Operator.NONE); - } - - private ByteCode(Class _class, ImmediateSpec _immediate, PushSpec _push) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, _immediate, PopSpec.NONE, _push, Operator.NONE); - } - - private ByteCode(Class _class, PopSpec _pop, PushSpec _push) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, _pop, _push, Operator.NONE); - } - - private ByteCode(Class _class, PopSpec _pop, PushSpec _push, Operator _operator) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, _pop, _push, _operator); - } - - private ByteCode(Class _class, PopSpec _pop) { - this(_class, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, _pop, PushSpec.NONE, Operator.NONE); - } - - private ByteCode() { - this(null, LoadSpec.NONE, StoreSpec.NONE, ImmediateSpec.NONE, PopSpec.NONE, PushSpec.NONE, Operator.NONE); - } - - public int getCode() { - return (ordinal()); - } - - public String getName() { - return (name().toLowerCase()); - } - - public ImmediateSpec getImmediate() { - return (immediate); - } - - public static ByteCode get(int _idx) { - return (values()[_idx]); - } - - public PushSpec getPush() { - return (push); - } - - public PopSpec getPop() { - return (pop); - } - - // Note I am intentionally skipping PushSpec.LorD. - public boolean usesDouble() { - final PushSpec push = getPush(); - final PopSpec pop = getPop(); - - if ((push == PushSpec.D) || (pop == PopSpec.D) || (pop == PopSpec.DD) || (pop == PopSpec.AID)) { - return true; - } - - return false; - } - - public Instruction newInstruction(MethodModel _methodModel, ByteReader byteReader, boolean _isWide) { - Instruction newInstruction = null; - if (clazz != null) { - - try { - final Constructor constructor = clazz.getDeclaredConstructor(MethodModel.class, ByteReader.class, boolean.class); - newInstruction = (Instruction) constructor.newInstance(_methodModel, byteReader, _isWide); - newInstruction.setLength(byteReader.getOffset() - newInstruction.getThisPC()); - } catch (final SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - return (newInstruction); - } - - public static Instruction create(MethodModel _methodModel, ByteReader _byteReader) { - ByteCode byteCode = get(_byteReader.u1()); - boolean isWide = false; - - if (byteCode.equals(ByteCode.WIDE)) { - // handle wide - //System.out.println("WIDE"); - isWide = true; - byteCode = get(_byteReader.u1()); - } - - final Instruction newInstruction = byteCode.newInstruction(_methodModel, _byteReader, isWide); - - return (newInstruction); - } - - public Operator getOperator() { - return (operator); - } - - public LoadSpec getLoad() { - return (loadSpec); - } - - public StoreSpec getStore() { - return (storeSpec); - } - } - - public static class CompositeInstruction extends Instruction{ - - protected BranchSet branchSet; - - public CompositeInstruction(MethodModel method, ByteCode _byteCode, Instruction _firstChild, Instruction _lastChild, - BranchSet _branchSet) { - super(method, _byteCode, -1); - branchSet = _branchSet; - setChildren(_firstChild, _lastChild); - } - - @Override public String getDescription() { - return ("COMPOSITE! " + getByteCode()); - } - - @Override public int getThisPC() { - return (getLastChild().getThisPC()); - } - - @Override public int getStartPC() { - return (getFirstChild().getStartPC()); - } - - public static CompositeInstruction create(ByteCode _byteCode, MethodModel _methodModel, Instruction _firstChild, - Instruction _lastChild, BranchSet _branchSet) { - CompositeInstruction compositeInstruction = null; - switch (_byteCode) { - case COMPOSITE_IF: - compositeInstruction = new CompositeIfInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_IF_ELSE: - compositeInstruction = new CompositeIfElseInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_FOR_SUN: - compositeInstruction = new CompositeForSunInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_WHILE: - compositeInstruction = new CompositeWhileInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_FOR_ECLIPSE: - compositeInstruction = new CompositeForEclipseInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_ARBITRARY_SCOPE: - compositeInstruction = new CompositeArbitraryScopeInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_EMPTY_LOOP: - compositeInstruction = new CompositeEmptyLoopInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - case COMPOSITE_DO_WHILE: - compositeInstruction = new CompositeDoWhileInstruction(_methodModel, _firstChild, _lastChild, _branchSet); - break; - } - - return (compositeInstruction); - } - - public BranchSet getBranchSet() { - return (branchSet); - } - } - - public static class CompositeIfInstruction extends CompositeInstruction{ - public CompositeIfInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_IF, _firstChild, _lastChild, _branchSet); - } - } - - public static class CompositeIfElseInstruction extends CompositeInstruction{ - public CompositeIfElseInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_IF_ELSE, _firstChild, _lastChild, _branchSet); - } - } - - public static class CompositeForSunInstruction extends CompositeInstruction{ - public CompositeForSunInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_FOR_SUN, _firstChild, _lastChild, _branchSet); - } - } - - public static class CompositeWhileInstruction extends CompositeInstruction{ - public CompositeWhileInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_WHILE, _firstChild, _lastChild, _branchSet); - } - } - - public static class CompositeEmptyLoopInstruction extends CompositeInstruction{ - public CompositeEmptyLoopInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_EMPTY_LOOP, _firstChild, _lastChild, _branchSet); - } - } - - public static class CompositeDoWhileInstruction extends CompositeInstruction{ - - protected CompositeDoWhileInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, - BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_DO_WHILE, _firstChild, _lastChild, _branchSet); - } - } - - public static class CompositeForEclipseInstruction extends CompositeInstruction{ - protected CompositeForEclipseInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, - BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_FOR_ECLIPSE, _firstChild, _lastChild, _branchSet); - - } - } - - public static class CompositeArbitraryScopeInstruction extends CompositeInstruction{ - protected CompositeArbitraryScopeInstruction(MethodModel method, Instruction _firstChild, Instruction _lastChild, - BranchSet _branchSet) { - super(method, ByteCode.COMPOSITE_ARBITRARY_SCOPE, _firstChild, _lastChild, _branchSet); - } - } - - public static abstract class OperatorInstruction extends Instruction{ - protected OperatorInstruction(MethodModel _methodPoolEntry, ByteCode code, ByteReader reader, boolean _wide) { - super(_methodPoolEntry, code, reader, _wide); - } - - public Operator getOperator() { - return (getByteCode().getOperator()); - } - } - - public static abstract class BinaryOperator extends OperatorInstruction implements Binary{ - @Override public final Instruction getLhs() { - return (getFirstChild()); - } - - @Override public final Instruction getRhs() { - return (getLastChild()); - } - - protected BinaryOperator(MethodModel _methodPoolEntry, ByteCode code, ByteReader reader, boolean _wide) { - super(_methodPoolEntry, code, reader, _wide); - } - } - - public static abstract class UnaryOperator extends OperatorInstruction implements Unary{ - @Override public final Instruction getUnary() { - return (getFirstChild()); - } - - protected UnaryOperator(MethodModel _methodPoolEntry, ByteCode code, ByteReader reader, boolean _wide) { - super(_methodPoolEntry, code, reader, _wide); - } - } - - public static abstract class CastOperator extends UnaryOperator{ - protected CastOperator(MethodModel _methodPoolEntry, ByteCode code, ByteReader reader, boolean _wide) { - super(_methodPoolEntry, code, reader, _wide); - } - } - - public static abstract class Branch extends Instruction{ - protected int offset; - - protected boolean breakOrContinue; - - protected Instruction target; - - public int getAbsolute() { - return (getThisPC() + getOffset()); - } - - private int getOffset() { - return (offset); - } - - public Branch(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - public Branch(MethodModel _methodPoolEntry, ByteCode _byteCode, Instruction _target) { - super(_methodPoolEntry, _byteCode, -1); - setTarget(_target); - } - - public Instruction getTarget() { - return (target); - } - - public void setTarget(Instruction _target) { - target = _target; - offset = target.getThisPC() - getThisPC(); - target.addBranchTarget(this); - } - - public boolean isConditional() { - return (this instanceof ConditionalBranch); - } - - public boolean isUnconditional() { - return (this instanceof UnconditionalBranch); - } - - public boolean isReverseConditional() { - return (isConditional() && isReverse()); - } - - public boolean isForwardConditional() { - return (isConditional() && isForward()); - } - - public boolean isReverseUnconditional() { - return (isUnconditional() && isReverse()); - } - - public boolean isForwardUnconditional() { - return (isUnconditional() && isForward()); - } - - public boolean isReverse() { - return (offset < 0); - } - - public boolean isForward() { - return (offset >= 0); - } - - public void unhook() { - getTarget().removeBranchTarget(this); - } - - public void setBreakOrContinue(boolean b) { - breakOrContinue = true; - } - - public boolean isBreakOrContinue() { - return (breakOrContinue); - } - - public void retarget(Instruction _newTarget) { - //System.out.println("retargetting " + pc + " -> " + target.getThisPC() + " to " + _newTarget.getThisPC()); - unhook(); // removes this from the list of branchers to target - setTarget(_newTarget); - //System.out.println("retargetted " + pc + " -> " + target.getThisPC()); - // _newTarget.addBranchTarget(this); - } - } - - public static abstract class ConditionalBranch extends Branch{ - private BranchSet branchSet; - - public ConditionalBranch(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - public void setBranchSet(BranchSet _branchSet) { - branchSet = _branchSet; - } - - public BranchSet getOrCreateBranchSet() { - if (branchSet == null) { - branchSet = new BranchSet(this); - } - - return branchSet; - } - - public BranchSet getBranchSet() { - return branchSet; - } - - // extent is a guess but we know that the target will be beyond extent, we are not interested in targets that fall before extent - public ConditionalBranch findEndOfConditionalBranchSet(Instruction _extent) { - // bummer ;) - // we need to find the actual branch set. Be careful here we can only create a branch set when we *know* that a conditional is the last in the set. - // we don't know that here. We have to scan forward to try to find it - ConditionalBranch i = this; - Instruction theTarget = null; - ConditionalBranch lastToTarget = null; - - if (getTarget().isAfter(_extent)) { - // if this conditional is already pointing beyond extent then we know the target - theTarget = getTarget(); - lastToTarget = this; - } - - while (i.getNextExpr().isBranch() && i.getNextExpr().asBranch().isForwardConditional()) { - final Branch nextBranch = i.getNextExpr().asBranch(); - - if ((theTarget == null) && nextBranch.getTarget().isAfter(_extent)) { - theTarget = nextBranch.getTarget(); - lastToTarget = this; - } else if (nextBranch.getTarget() == theTarget) { - lastToTarget = this; - } - - i = (ConditionalBranch) i.getNextExpr(); - } - - if (theTarget == null) { - throw new IllegalStateException("unable to find end of while extent"); - } - - return (lastToTarget); - } - } - - public static abstract class UnconditionalBranch extends Branch{ - public UnconditionalBranch(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - public UnconditionalBranch(MethodModel _methodPoolEntry, ByteCode _byteCode, Instruction _target) { - super(_methodPoolEntry, _byteCode, _target); - } - } - - public static abstract class IfUnary extends ConditionalBranch16 implements Unary{ - public IfUnary(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - @Override public Instruction getUnary() { - return (getFirstChild()); - } - } - - public static abstract class If extends ConditionalBranch16 implements Binary{ - public If(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - @Override public Instruction getLhs() { - return (getFirstChild()); - } - - @Override public Instruction getRhs() { - return (getLastChild()); - } - } - - public static abstract class ConditionalBranch16 extends ConditionalBranch implements HasOperator{ - public ConditionalBranch16(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - offset = _byteReader.s2(); - } - - @Override public Operator getOperator() { - return (getByteCode().getOperator()); - } - } - - public static abstract class UnconditionalBranch16 extends UnconditionalBranch{ - public UnconditionalBranch16(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - offset = _byteReader.s2(); - } - } - - public static abstract class Branch32 extends UnconditionalBranch{ - public Branch32(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - offset = _byteReader.s4(); - } - } - - public static abstract class ArrayAccess extends Instruction{ - public ArrayAccess(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - public Instruction getArrayRef() { - return (getFirstChild()); - } - - public Instruction getArrayIndex() { - return (getFirstChild().getNextExpr()); - } - } - - public static abstract class AccessArrayElement extends ArrayAccess{ - protected AccessArrayElement(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - } - - public static class I_AALOAD extends AccessArrayElement{ - public I_AALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.AALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push reference from arrayref and index"); - } - } - - public static abstract class AssignToArrayElement extends ArrayAccess{ - public Instruction getValue() { - return (getFirstChild().getNextExpr().getNextExpr()); - } - - protected AssignToArrayElement(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - } - - public static class I_AASTORE extends AssignToArrayElement{ - public I_AASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.AASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop reference into arrayref[index]"); - } - } - - public static class I_ACONST_NULL extends Instruction implements Constant{ - public I_ACONST_NULL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ACONST_NULL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push null"); - } - - @Override public Object getValue() { - return null; - } - } - - public static abstract class LocalVariableConstIndexAccessor extends IndexConst implements AccessLocalVariable{ - public LocalVariableConstIndexAccessor(MethodModel methodPoolEntry, ByteCode byteCode, ByteReader byteReader, boolean _wide, - int index) { - super(methodPoolEntry, byteCode, byteReader, _wide, index); - } - - @Override public int getLocalVariableTableIndex() { - return (index); - } - - @Override public LocalVariableInfo getLocalVariableInfo() { - return (method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(), getLocalVariableTableIndex())); - } - } - - public static abstract class LocalVariableConstIndexLoad extends LocalVariableConstIndexAccessor{ - public LocalVariableConstIndexLoad(MethodModel methodPoolEntry, ByteCode byteCode, ByteReader byteReader, boolean _wide, - int index) { - super(methodPoolEntry, byteCode, byteReader, _wide, index); - } - - @Override public String getDescription() { - return ("push reference from local var index " + index); - } - } - - public static abstract class LocalVariableConstIndexStore extends LocalVariableConstIndexAccessor implements - AssignToLocalVariable{ - public LocalVariableConstIndexStore(MethodModel methodPoolEntry, ByteCode byteCode, ByteReader byteReader, boolean _wide, - int index) { - super(methodPoolEntry, byteCode, byteReader, _wide, index); - } - - @Override public boolean isDeclaration() { - LocalVariableInfo lvi = method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(), - getLocalVariableTableIndex()); - return (lvi.getStart() == getThisPC() + getLength()); - } - - @Override public String getDescription() { - return ("pop reference into local var index " + index); - } - } - - public static abstract class LocalVariableIndex08Accessor extends Index08 implements AccessLocalVariable{ - public LocalVariableIndex08Accessor(MethodModel methodPoolEntry, ByteCode byteCode, ByteReader byteReader, boolean _wide) { - super(methodPoolEntry, byteCode, byteReader, _wide); - } - - @Override public int getLocalVariableTableIndex() { - return (index); - } - - @Override public LocalVariableInfo getLocalVariableInfo() { - return (method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(), getLocalVariableTableIndex())); - } - } - - public static abstract class LocalVariableIndex08Load extends LocalVariableIndex08Accessor{ - public LocalVariableIndex08Load(MethodModel methodPoolEntry, ByteCode byteCode, ByteReader byteReader, boolean _wide) { - super(methodPoolEntry, byteCode, byteReader, _wide); - } - - @Override public String getDescription() { - return ("push reference from local var index " + index); - } - } - - public static abstract class LocalVariableIndex08Store extends LocalVariableIndex08Accessor implements AssignToLocalVariable{ - public LocalVariableIndex08Store(MethodModel methodPoolEntry, ByteCode byteCode, ByteReader byteReader, boolean _wide) { - super(methodPoolEntry, byteCode, byteReader, _wide); - } - - @Override public boolean isDeclaration() { - final LocalVariableTableEntry localVariableTableEntry = method.getLocalVariableTableEntry(); - final LocalVariableInfo localVarInfo = localVariableTableEntry.getVariable(getThisPC() + getLength(), - getLocalVariableTableIndex()); - return ((localVarInfo != null) && (localVarInfo.getStart() == (getThisPC() + getLength()))); - } - - @Override public String getDescription() { - return ("pop reference into local var index " + index); - } - } - - public static class I_ALOAD extends LocalVariableIndex08Load{ - public I_ALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ALOAD, _byteReader, _wide); - } - } - - public static class I_ALOAD_0 extends LocalVariableConstIndexLoad{ - public I_ALOAD_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ALOAD_0, _byteReader, _wide, 0); - } - } - - public static class I_ALOAD_1 extends LocalVariableConstIndexLoad{ - public I_ALOAD_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ALOAD_1, _byteReader, _wide, 1); - } - } - - public static class I_ALOAD_2 extends LocalVariableConstIndexLoad{ - public I_ALOAD_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ALOAD_2, _byteReader, _wide, 2); - } - } - - public static class I_ALOAD_3 extends LocalVariableConstIndexLoad{ - public I_ALOAD_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ALOAD_3, _byteReader, _wide, 3); - } - } - - public static class I_ANEWARRAY extends Index16 implements New{ - public I_ANEWARRAY(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ANEWARRAY, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("new array of reference"); - } - } - - public static class I_ARETURN extends Return{ - public I_ARETURN(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ARETURN, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return popped reference"); - } - } - - public static class I_ARRAYLENGTH extends Instruction{ - public I_ARRAYLENGTH(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ARRAYLENGTH, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop array push length"); - } - } - - public static class I_ASTORE extends LocalVariableIndex08Store{ - public I_ASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ASTORE, _byteReader, _wide); - } - } - - public static class I_ASTORE_0 extends LocalVariableConstIndexStore{ - public I_ASTORE_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ASTORE_0, _byteReader, _wide, 0); - } - } - - public static class I_ASTORE_1 extends LocalVariableConstIndexStore{ - public I_ASTORE_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ASTORE_1, _byteReader, _wide, 1); - } - } - - public static class I_ASTORE_2 extends LocalVariableConstIndexStore{ - public I_ASTORE_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ASTORE_2, _byteReader, _wide, 2); - } - } - - public static class I_ASTORE_3 extends LocalVariableConstIndexStore{ - public I_ASTORE_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ASTORE_3, _byteReader, _wide, 3); - } - } - - public static class I_ATHROW extends Instruction{ - public I_ATHROW(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ATHROW, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop reference and throw"); - } - } - - public static class I_BALOAD extends AccessArrayElement{ - public I_BALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.BALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push byte/boolean from arrayref and index"); - } - } - - public static class I_BASTORE extends AssignToArrayElement{ - public I_BASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.BASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop boolean/byte into arrayref[index]"); - } - } - - public static class I_BIPUSH extends ImmediateConstant{ - public I_BIPUSH(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.BIPUSH, _byteReader, _wide); - value = _byteReader.u1(); - } - - @Override public String getDescription() { - return ("push (byte)"); - } - - @Override public Integer getValue() { - int byteValue = super.getValue(); - if (byteValue > 127) { - byteValue = -(256 - byteValue); - } - return (byteValue); - } - } - - public static class I_CALOAD extends AccessArrayElement{ - public I_CALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.CALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push char from arrayref and index"); - } - } - - public static class I_CASTORE extends AssignToArrayElement{ - public I_CASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.CASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop char into arrayref[index]"); - } - } - - public static class I_CHECKCAST extends Index16{ - public I_CHECKCAST(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.CHECKCAST, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("peek reference check against the constant accessed 16 bit"); - } - } - - public static class I_D2F extends CastOperator{ - public I_D2F(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.D2F, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop double push float"); - } - } - - public static class I_D2I extends CastOperator{ - public I_D2I(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.D2I, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop double push int"); - } - } - - public static class I_D2L extends CastOperator{ - public I_D2L(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.D2L, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop double push long"); - } - } - - public static class I_DADD extends BinaryOperator{ - public I_DADD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DADD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("add top two doubles"); - } - } - - public static class I_DALOAD extends AccessArrayElement{ - public I_DALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push double from arrayref and index"); - } - } - - public static class I_DASTORE extends AssignToArrayElement{ - public I_DASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop double into arrayref[index]"); - } - } - - public static class I_DCMPG extends Instruction{ - public I_DCMPG(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DCMPG, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push result of double comparison"); - } - } - - public static class I_DCMPL extends Instruction{ - public I_DCMPL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DCMPL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push result of double comparison"); - } - } - - public static abstract class BytecodeEncodedConstant extends Instruction implements Constant{ - private final T value; - - public BytecodeEncodedConstant(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide, - T _value) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - value = _value; - } - - @Override public T getValue() { - return (value); - } - } - - public static abstract class ImmediateConstant extends Instruction implements Constant{ - protected T value; - - public ImmediateConstant(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - - @Override public T getValue() { - return (value); - } - } - - public static class I_DCONST_0 extends BytecodeEncodedConstant{ - public I_DCONST_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DCONST_0, _byteReader, _wide, 0.0); - } - - @Override public String getDescription() { - return ("push (double) 0.0"); - } - } - - public static class I_DCONST_1 extends BytecodeEncodedConstant{ - public I_DCONST_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DCONST_1, _byteReader, _wide, 1.0); - } - - @Override public String getDescription() { - return ("push (double) 1.0"); - } - } - - public static class I_DDIV extends BinaryOperator{ - public I_DDIV(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DDIV, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("div top two doubles"); - } - } - - public static class I_DLOAD extends LocalVariableIndex08Load{ - public I_DLOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DLOAD, _byteReader, _wide); - } - } - - public static class I_DLOAD_0 extends LocalVariableConstIndexLoad{ - public I_DLOAD_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DLOAD_0, _byteReader, _wide, 0); - } - } - - public static class I_DLOAD_1 extends LocalVariableConstIndexLoad{ - public I_DLOAD_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DLOAD_1, _byteReader, _wide, 1); - } - } - - public static class I_DLOAD_2 extends LocalVariableConstIndexLoad{ - public I_DLOAD_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DLOAD_2, _byteReader, _wide, 2); - } - } - - public static class I_DLOAD_3 extends LocalVariableConstIndexLoad{ - public I_DLOAD_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DLOAD_3, _byteReader, _wide, 3); - } - } - - public static class I_DMUL extends BinaryOperator{ - public I_DMUL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DMUL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("mul top two doubles"); - } - } - - public static class I_DNEG extends UnaryOperator{ - public I_DNEG(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DNEG, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("neg top double"); - } - } - - public static class I_DREM extends BinaryOperator{ - public I_DREM(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DREM, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("rem top two doubles"); - } - } - - public static class I_DRETURN extends Return{ - public I_DRETURN(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DRETURN, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return popped double"); - } - } - - public static class I_DSTORE extends LocalVariableIndex08Store{ - public I_DSTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DSTORE, _byteReader, _wide); - } - } - - public static class I_DSTORE_0 extends LocalVariableConstIndexStore{ - public I_DSTORE_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DSTORE_0, _byteReader, _wide, 0); - } - } - - public static class I_DSTORE_1 extends LocalVariableConstIndexStore{ - public I_DSTORE_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DSTORE_1, _byteReader, _wide, 1); - } - } - - public static class I_DSTORE_2 extends LocalVariableConstIndexStore{ - public I_DSTORE_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DSTORE_2, _byteReader, _wide, 2); - } - } - - public static class I_DSTORE_3 extends LocalVariableConstIndexStore{ - public I_DSTORE_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DSTORE_3, _byteReader, _wide, 3); - } - } - - public static class I_DSUB extends BinaryOperator{ - public I_DSUB(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DSUB, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("sub top two doubles"); - } - } - - public static abstract class DUP extends Instruction{ - public DUP(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - } - - public static class I_DUP extends DUP{ - public I_DUP(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DUP, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("dup top item"); - } - } - - public static class I_DUP_X1 extends DUP{ - public I_DUP_X1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DUP_X1, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("dup top item 2 items down"); - } - } - - public static class I_DUP_X2 extends DUP{ - public I_DUP_X2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DUP_X2, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("dup top item 3 items down"); - } - } - - public static class I_DUP2 extends DUP{ - public I_DUP2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DUP2, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("dup top 2 items"); - } - } - - public static class I_DUP2_X1 extends DUP{ - public I_DUP2_X1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DUP2_X1, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("dup top 2 items 2 items down"); - } - } - - public static class I_DUP2_X2 extends DUP{ - public I_DUP2_X2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.DUP_X2, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("dup top 2 items 3 items down"); - } - } - - public static class I_F2D extends CastOperator{ - public I_F2D(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.F2D, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop float push double"); - } - } - - public static class I_F2I extends CastOperator{ - public I_F2I(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.F2I, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop float push int"); - } - } - - public static class I_F2L extends CastOperator{ - public I_F2L(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.F2L, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop float push long"); - } - } - - public static class I_FADD extends BinaryOperator{ - public I_FADD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FADD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("add top two floats"); - } - } - - public static class I_FALOAD extends AccessArrayElement{ - public I_FALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push float from arrayref and index"); - } - } - - public static class I_FASTORE extends AssignToArrayElement{ - public I_FASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop float into arrayref[index]"); - } - } - - public static class I_FCMPG extends BinaryOperator{ - public I_FCMPG(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FCMPG, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push result of float comparison"); - } - } - - public static class I_FCMPL extends BinaryOperator{ - public I_FCMPL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FCMPL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push result of float comparison"); - } - } - - public static class I_FCONST_0 extends BytecodeEncodedConstant{ - public I_FCONST_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FCONST_0, _byteReader, _wide, 0f); - } - - @Override public String getDescription() { - return ("push (float) 0.0"); - } - } - - public static class I_FCONST_1 extends BytecodeEncodedConstant{ - public I_FCONST_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FCONST_1, _byteReader, _wide, 1f); - } - - @Override public String getDescription() { - return ("push (float) 1.0"); - } - } - - public static class I_FCONST_2 extends BytecodeEncodedConstant{ - public I_FCONST_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FCONST_2, _byteReader, _wide, 2f); - } - - @Override public String getDescription() { - return ("push (float) 2.0"); - } - } - - public static class I_FDIV extends BinaryOperator{ - public I_FDIV(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FDIV, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("div top two floats"); - } - } - - public static class I_FLOAD extends LocalVariableIndex08Load{ - public I_FLOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FLOAD, _byteReader, _wide); - } - } - - public static class I_FLOAD_0 extends LocalVariableConstIndexLoad{ - public I_FLOAD_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FLOAD_0, _byteReader, _wide, 0); - } - } - - public static class I_FLOAD_1 extends LocalVariableConstIndexLoad{ - public I_FLOAD_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FLOAD_1, _byteReader, _wide, 1); - } - } - - public static class I_FLOAD_2 extends LocalVariableConstIndexLoad{ - public I_FLOAD_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FLOAD_2, _byteReader, _wide, 2); - } - } - - public static class I_FLOAD_3 extends LocalVariableConstIndexLoad{ - public I_FLOAD_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FLOAD_3, _byteReader, _wide, 3); - } - } - - public static class I_FMUL extends BinaryOperator{ - public I_FMUL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FMUL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("mul top two floats"); - } - } - - public static class I_FNEG extends UnaryOperator{ - public I_FNEG(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FNEG, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("neg top float"); - } - } - - public static class I_FREM extends BinaryOperator{ - public I_FREM(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FREM, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("rem top two floats"); - } - } - - public static class I_FRETURN extends Return{ - public I_FRETURN(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FRETURN, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return popped float"); - } - } - - public static class I_FSTORE extends LocalVariableIndex08Store{ - public I_FSTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FSTORE, _byteReader, _wide); - } - } - - public static class I_FSTORE_0 extends LocalVariableConstIndexStore{ - public I_FSTORE_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FSTORE_0, _byteReader, _wide, 0); - } - } - - public static class I_FSTORE_1 extends LocalVariableConstIndexStore{ - public I_FSTORE_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FSTORE_1, _byteReader, _wide, 1); - } - } - - public static class I_FSTORE_2 extends LocalVariableConstIndexStore{ - I_FSTORE_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FSTORE_2, _byteReader, _wide, 2); - } - } - - public static class I_FSTORE_3 extends LocalVariableConstIndexStore{ - public I_FSTORE_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FSTORE_3, _byteReader, _wide, 3); - } - } - - public static class I_FSUB extends BinaryOperator{ - public I_FSUB(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.FSUB, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("sub top two floats"); - } - } - - public static class I_GETFIELD extends Index16 implements AccessInstanceField{ - - public I_GETFIELD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.GETFIELD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push value from field referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolFieldIndex() { - return (index); - } - - @Override public FieldEntry getConstantPoolFieldEntry() { - return (method.getConstantPool().getFieldEntry(getConstantPoolFieldIndex())); - } - - @Override public Instruction getInstance() { - return (getFirstChild()); - } - - @Override public int getStackConsumeCount() { - return (1); - } - - @Override public int getStackProduceCount() { - return (1); - } - } - - public static class I_GETSTATIC extends Index16 implements AccessField{ - public I_GETSTATIC(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.GETSTATIC, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push static field value at 16 bit constant index"); - } - - @Override public int getConstantPoolFieldIndex() { - return (index); - } - - @Override public FieldEntry getConstantPoolFieldEntry() { - return (method.getConstantPool().getFieldEntry(getConstantPoolFieldIndex())); - } - - @Override public int getStackConsumeCount() { - return (0); - } - - @Override public int getStackProduceCount() { - return (1); - } - } - - public static class I_GOTO extends UnconditionalBranch16{ - public I_GOTO(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.GOTO, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch "); - } - } - - public static class I_GOTO_W extends Branch32{ - public I_GOTO_W(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.GOTO_W, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("goto wide branch"); - } - } - - public static class I_I2B extends CastOperator{ - public I_I2B(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.I2B, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int push byte"); - } - } - - public static class I_I2C extends CastOperator{ - public I_I2C(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.I2C, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int push char"); - } - } - - public static class I_I2D extends CastOperator{ - public I_I2D(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.I2D, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int push double"); - } - } - - public static class I_I2F extends CastOperator{ - public I_I2F(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.I2F, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int push float"); - } - } - - public static class I_I2L extends CastOperator{ - public I_I2L(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.I2L, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int push long"); - } - } - - public static class I_I2S extends CastOperator{ - public I_I2S(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.I2S, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int push short"); - } - } - - public static class I_IADD extends BinaryOperator{ - public I_IADD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IADD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("add top two ints"); - } - } - - public static class I_IALOAD extends AccessArrayElement{ - public I_IALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push int from arrayref and index"); - } - } - - public static class I_IAND extends BinaryOperator{ - public I_IAND(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IAND, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("and top two ints"); - } - } - - public static class I_IASTORE extends AssignToArrayElement{ - public I_IASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop int into arrayref[index]"); - } - } - - public static class I_ICONST_0 extends BytecodeEncodedConstant{ - public I_ICONST_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_0, _byteReader, _wide, 0); - } - - @Override public String getDescription() { - return ("push (int) 0"); - } - } - - public static class I_ICONST_1 extends BytecodeEncodedConstant{ - public I_ICONST_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_1, _byteReader, _wide, 1); - } - - @Override public String getDescription() { - return ("push (int) 1"); - } - } - - public static class I_ICONST_2 extends BytecodeEncodedConstant{ - public I_ICONST_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_2, _byteReader, _wide, 2); - } - - @Override public String getDescription() { - return ("push (int) 2"); - } - } - - public static class I_ICONST_3 extends BytecodeEncodedConstant{ - public I_ICONST_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_3, _byteReader, _wide, 3); - } - - @Override public String getDescription() { - return ("push (int) 3"); - } - } - - public static class I_ICONST_4 extends BytecodeEncodedConstant{ - public I_ICONST_4(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_4, _byteReader, _wide, 4); - } - - @Override public String getDescription() { - return ("push (int) 4"); - } - } - - public static class I_ICONST_5 extends BytecodeEncodedConstant{ - public I_ICONST_5(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_5, _byteReader, _wide, 5); - } - - @Override public String getDescription() { - return ("push (int) 5"); - } - } - - public static class I_ICONST_M1 extends BytecodeEncodedConstant{ - public I_ICONST_M1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ICONST_M1, _byteReader, _wide, -1); - } - - @Override public String getDescription() { - return ("push (int)-1"); - } - } - - public static class I_IDIV extends BinaryOperator{ - public I_IDIV(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IDIV, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("div top two ints"); - } - } - - public static class I_IF_ACMPEQ extends If{ - public I_IF_ACMPEQ(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ACMPEQ, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top references =="); - } - } - - public static class I_IF_ACMPNE extends If{ - public I_IF_ACMPNE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ACMPNE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top references !="); - } - } - - public static class I_IF_ICMPEQ extends If{ - public I_IF_ICMPEQ(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ICMPEQ, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top ints =="); - } - } - - public static class I_IF_ICMPGE extends If{ - public I_IF_ICMPGE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ICMPGE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top ints >="); - } - } - - public static class I_IF_ICMPGT extends If{ - public I_IF_ICMPGT(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ICMPGT, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top ints > "); - } - } - - public static class I_IF_ICMPLE extends If{ - public I_IF_ICMPLE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ICMPLE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top ints <="); - } - } - - public static class I_IF_ICMPLT extends If{ - public I_IF_ICMPLT(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ICMPLT, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top ints < "); - } - } - - public static class I_IF_ICMPNE extends If{ - public I_IF_ICMPNE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IF_ICMPNE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top ints !="); - } - } - - public static class I_IFEQ extends IfUnary{ - public I_IFEQ(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFEQ, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top int == 0"); - } - } - - public static class I_IFGE extends IfUnary{ - public I_IFGE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFGE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top int >= 0"); - } - } - - public static class I_IFGT extends IfUnary{ - public I_IFGT(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFGT, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top int > 0"); - } - } - - public static class I_IFLE extends IfUnary{ - public I_IFLE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFLE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top int <= 0"); - } - } - - public static class I_IFLT extends IfUnary{ - public I_IFLT(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFLT, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top int < 0"); - } - } - - public static class I_IFNE extends IfUnary{ - public I_IFNE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFNE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if stack top int != 0"); - } - } - - public static class I_IFNONNULL extends ConditionalBranch16{ - public I_IFNONNULL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFNONNULL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if non null"); - } - } - - public static class I_IFNULL extends ConditionalBranch16{ - public I_IFNULL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IFNULL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("branch if null"); - } - } - - public static class I_IINC extends Index08{ - private int delta; - - private final boolean wide; - - public I_IINC(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IINC, _byteReader, _wide); - wide = _wide; - if (wide) { - delta = _byteReader.u2(); - } else { - delta = _byteReader.u1(); - } - - } - - @Override public String getDescription() { - return ("inc var index 08 bit by byte"); - } - - public LocalVariableInfo getLocalVariableInfo() { - return (method.getLocalVariableTableEntry().getVariable(getThisPC(), getLocalVariableTableIndex())); - } - - public int getLocalVariableTableIndex() { - return (index); - } - - public int getDelta() { - return (delta); - } - - public boolean isInc() { - return getAdjust() > 0; - } - - public int getAdjust() { - int adjust = delta; - if (wide) { - if (adjust > 0x7fff) { - adjust = -0x10000 + adjust; - } - } else { - if (adjust > 0x7f) { - adjust = -0x100 + adjust; - } - } - return (adjust); - } - } - - public static class I_ILOAD extends LocalVariableIndex08Load{ - public I_ILOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ILOAD, _byteReader, _wide); - } - } - - public static class I_ILOAD_0 extends LocalVariableConstIndexLoad{ - public I_ILOAD_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ILOAD_0, _byteReader, _wide, 0); - } - } - - public static class I_ILOAD_1 extends LocalVariableConstIndexLoad{ - public I_ILOAD_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ILOAD_1, _byteReader, _wide, 1); - } - } - - public static class I_ILOAD_2 extends LocalVariableConstIndexLoad{ - public I_ILOAD_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ILOAD_2, _byteReader, _wide, 2); - } - } - - public static class I_ILOAD_3 extends LocalVariableConstIndexLoad{ - public I_ILOAD_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ILOAD_3, _byteReader, _wide, 3); - } - } - - public static class I_IMUL extends BinaryOperator{ - public I_IMUL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IMUL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("mul top two ints"); - } - } - - public static class I_INEG extends UnaryOperator{ - public I_INEG(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INEG, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("neg top int"); - } - } - - public static class I_INSTANCEOF extends Index16{ - public I_INSTANCEOF(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INSTANCEOF, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop reference check against the constant accessed 16 bit push 1 if same"); - } - } - - public static class I_INVOKEINTERFACE extends Index16 implements InterfaceConstantPoolMethodIndexAccessor{ - private final int args; - - public I_INVOKEINTERFACE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INVOKEINTERFACE, _byteReader, _wide); - args = _byteReader.u1(); - @SuppressWarnings("unused") final int zeroByte = _byteReader.u1(); - - } - - @Override public int getArgs() { - return (args); - } - - @Override public String getDescription() { - return ("pop args and call the interface method referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolInterfaceMethodIndex() { - return (index); - } - - @Override public ConstantPool.InterfaceMethodEntry getConstantPoolInterfaceMethodEntry() { - return (method.getConstantPool().getInterfaceMethodEntry(getConstantPoolInterfaceMethodIndex())); - } - - @Override public Instruction getArg(int _arg) { - Instruction child = getFirstChild(); - _arg++; - - while (_arg-- != 0) { - child = child.getNextExpr(); - } - - return (child); - } - - @Override public Instruction getInstanceReference() { - return (getFirstChild()); - } - - @Override public int getStackConsumeCount() { - return (getConstantPoolInterfaceMethodEntry().getStackConsumeCount() + 1); // + 1 to account for instance 'this' - - } - - @Override public int getStackProduceCount() { - return (getConstantPoolInterfaceMethodEntry().getStackProduceCount()); // + 1 to account for instance 'this' - } - } - - public static class I_INVOKEDYNAMIC extends Index16 implements InterfaceConstantPoolMethodIndexAccessor{ - private final int args; - - public I_INVOKEDYNAMIC(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INVOKEDYNAMIC, _byteReader, _wide); - args = _byteReader.u1(); - @SuppressWarnings("unused") final int zeroByte = _byteReader.u1(); - - } - - @Override public int getArgs() { - return (args); - } - - @Override public String getDescription() { - return ("pop args and call the invoke dynamic method referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolInterfaceMethodIndex() { - return (index); - } - - @Override public ConstantPool.InterfaceMethodEntry getConstantPoolInterfaceMethodEntry() { - return (method.getConstantPool().getInterfaceMethodEntry(getConstantPoolInterfaceMethodIndex())); - } - - @Override public Instruction getArg(int _arg) { - Instruction child = getFirstChild(); - _arg++; - while (_arg-- != 0) { - child = child.getNextExpr(); - } - return (child); - } - - @Override public Instruction getInstanceReference() { - return (getFirstChild()); - } - - @Override public int getStackConsumeCount() { - return (getConstantPoolInterfaceMethodEntry().getStackConsumeCount() + 1); // + 1 to account for instance 'this' - - } - - @Override public int getStackProduceCount() { - return (getConstantPoolInterfaceMethodEntry().getStackProduceCount()); // + 1 to account for instance 'this' - } - } - - public static class I_INVOKESPECIAL extends Index16 implements VirtualMethodCall{ - - public I_INVOKESPECIAL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INVOKESPECIAL, _byteReader, _wide); - - } - - @Override public String getDescription() { - return ("pop object reference and args and call the special method referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolMethodIndex() { - return (index); - } - - @Override public ConstantPool.MethodEntry getConstantPoolMethodEntry() { - return (method.getConstantPool().getMethodEntry(getConstantPoolMethodIndex())); - } - - @Override public Instruction getArg(int _arg) { - Instruction child = getFirstChild(); - _arg++; - while (_arg-- != 0) { - child = child.getNextExpr(); - } - return (child); - } - - @Override public Instruction getInstanceReference() { - return (getFirstChild()); - } - - @Override public int getStackConsumeCount() { - return (getConstantPoolMethodEntry().getStackConsumeCount() + 1); // + 1 to account for instance 'this' - - } - - @Override public int getStackProduceCount() { - return (getConstantPoolMethodEntry().getStackProduceCount()); - } - } - - public static class I_INVOKESTATIC extends Index16 implements MethodCall{ - - public I_INVOKESTATIC(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INVOKESTATIC, _byteReader, _wide); - - } - - @Override public String getDescription() { - return ("pop args and call the static method referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolMethodIndex() { - return (index); - } - - @Override public ConstantPool.MethodEntry getConstantPoolMethodEntry() { - return (method.getConstantPool().getMethodEntry(getConstantPoolMethodIndex())); - } - - @Override public Instruction getArg(int _arg) { - Instruction child = getFirstChild(); - - while (_arg-- != 0) { - child = child.getNextExpr(); - } - - return (child); - } - - @Override public int getStackConsumeCount() { - return (getConstantPoolMethodEntry().getStackConsumeCount()); - } - - @Override public int getStackProduceCount() { - return (getConstantPoolMethodEntry().getStackProduceCount()); - } - } - - public static class I_INVOKEVIRTUAL extends Index16 implements VirtualMethodCall{ - - public I_INVOKEVIRTUAL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.INVOKEVIRTUAL, _byteReader, _wide); - - } - - @Override public String getDescription() { - return ("pop object reference and args and call the method referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolMethodIndex() { - return (index); - } - - @Override public ConstantPool.MethodEntry getConstantPoolMethodEntry() { - return (method.getConstantPool().getMethodEntry(getConstantPoolMethodIndex())); - } - - @Override public Instruction getArg(int _arg) { - Instruction child = getFirstChild(); - _arg++; - - while (_arg-- != 0) { - child = child.getNextExpr(); - } - - return (child); - } - - @Override public Instruction getInstanceReference() { - return (getFirstChild()); - } - - @Override public int getStackConsumeCount() { - return (getConstantPoolMethodEntry().getStackConsumeCount() + 1); // + 1 to account for instance 'this' - } - - @Override public int getStackProduceCount() { - return (getConstantPoolMethodEntry().getStackProduceCount()); - } - } - - public static class I_IOR extends BinaryOperator{ - public I_IOR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IOR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("or top two ints"); - } - } - - public static class I_IREM extends BinaryOperator{ - public I_IREM(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IREM, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("rem top two ints"); - } - } - - public static class I_IRETURN extends Return{ - public I_IRETURN(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IRETURN, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return popped int"); - } - } - - public static class I_ISHL extends BinaryOperator{ - public I_ISHL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISHL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("shift left top int"); - } - } - - public static class I_ISHR extends BinaryOperator{ - public I_ISHR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISHR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("shift right top int"); - } - } - - public static class I_ISTORE extends LocalVariableIndex08Store{ - public I_ISTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISTORE, _byteReader, _wide); - } - } - - public static class I_ISTORE_0 extends LocalVariableConstIndexStore{ - public I_ISTORE_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISTORE_0, _byteReader, _wide, 0); - } - } - - public static class I_ISTORE_1 extends LocalVariableConstIndexStore{ - public I_ISTORE_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISTORE_1, _byteReader, _wide, 1); - } - } - - public static class I_ISTORE_2 extends LocalVariableConstIndexStore{ - public I_ISTORE_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISTORE_2, _byteReader, _wide, 2); - } - } - - public static class I_ISTORE_3 extends LocalVariableConstIndexStore{ - public I_ISTORE_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISTORE_3, _byteReader, _wide, 3); - } - } - - public static class I_ISUB extends BinaryOperator{ - public I_ISUB(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.ISUB, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("sub top two ints"); - } - } - - public static class I_IUSHR extends BinaryOperator{ - public I_IUSHR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IUSHR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("shift right top int unsigned"); - } - } - - public static class I_IXOR extends BinaryOperator{ - public I_IXOR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.IXOR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("xor top two ints"); - } - } - - public static class I_JSR extends UnconditionalBranch16{ - public I_JSR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.JSR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("jump to subroutine "); - } - } - - public static class I_JSR_W extends Branch32{ - public I_JSR_W(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.JSR_W, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("subroutine"); - } - } - - public static class I_L2D extends CastOperator{ - public I_L2D(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.L2D, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop long push double"); - } - } - - public static class I_L2F extends CastOperator{ - public I_L2F(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.L2F, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop long push float"); - } - } - - public static class I_L2I extends CastOperator{ - public I_L2I(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.L2I, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop long push int"); - } - } - - public static class I_LADD extends BinaryOperator{ - public I_LADD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LADD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("add top two longs"); - } - } - - public static class I_LALOAD extends AccessArrayElement{ - public I_LALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push long from arrayref and index"); - } - } - - public static class I_LAND extends BinaryOperator{ - public I_LAND(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LAND, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("and top two longs"); - } - } - - public static class I_LASTORE extends AssignToArrayElement{ - public I_LASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop long into arrayref[index]"); - } - } - - public static class I_LCMP extends BinaryOperator{ - public I_LCMP(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LCMP, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push result of long comparison"); - } - } - - public static class I_LCONST_0 extends BytecodeEncodedConstant{ - public I_LCONST_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LCONST_0, _byteReader, _wide, 0L); - } - - @Override public String getDescription() { - return ("push (long) 0"); - } - } - - public static class I_LCONST_1 extends BytecodeEncodedConstant{ - public I_LCONST_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LCONST_1, _byteReader, _wide, 1L); - } - - @Override public String getDescription() { - return ("push (long) 1"); - } - } - - public static class I_LDC extends Index08 implements ConstantPoolEntryConstant{ - public I_LDC(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LDC, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push constant at 08 bit index"); - } - - @Override public Object getValue() { - return (method.getConstantPool().getConstantEntry(getConstantPoolIndex())); - - } - - @Override public int getConstantPoolIndex() { - return (index); - } - - @Override public Entry getConstantPoolEntry() { - return (method.getConstantPool().get(getConstantPoolIndex())); - } - } - - public static class I_LDC_W extends Index16 implements ConstantPoolEntryConstant{ - public I_LDC_W(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LDC_W, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push constant at 16 bit index"); - } - - @Override public int getConstantPoolIndex() { - return (index); - } - - @Override public Object getValue() { - return (method.getConstantPool().getConstantEntry(getConstantPoolIndex())); - - } - - @Override public Entry getConstantPoolEntry() { - return (method.getConstantPool().get(getConstantPoolIndex())); - } - } - - public static class I_LDC2_W extends Index16 implements ConstantPoolEntryConstant{ - public I_LDC2_W(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LDC2_W, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push long/double constant at 16 bit index"); - } - - @Override public int getConstantPoolIndex() { - return (index); - } - - @Override public Entry getConstantPoolEntry() { - return (method.getConstantPool().get(getConstantPoolIndex())); - } - - @Override public Object getValue() { - return (method.getConstantPool().getConstantEntry(getConstantPoolIndex())); - } - } - - public static class I_LDIV extends BinaryOperator{ - public I_LDIV(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LDIV, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("div top two longs"); - } - } - - public static class I_LLOAD extends LocalVariableIndex08Load{ - public I_LLOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LLOAD, _byteReader, _wide); - } - } - - public static class I_LLOAD_0 extends LocalVariableConstIndexLoad{ - public I_LLOAD_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LLOAD_0, _byteReader, _wide, 0); - } - } - - public static class I_LLOAD_1 extends LocalVariableConstIndexLoad{ - public I_LLOAD_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LLOAD_1, _byteReader, _wide, 1); - } - } - - public static class I_LLOAD_2 extends LocalVariableConstIndexLoad{ - public I_LLOAD_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LLOAD_2, _byteReader, _wide, 2); - } - } - - public static class I_LLOAD_3 extends LocalVariableConstIndexLoad{ - public I_LLOAD_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LLOAD_3, _byteReader, _wide, 3); - } - } - - public static class I_LMUL extends BinaryOperator{ - public I_LMUL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LMUL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("mul top two longs"); - } - } - - public static class I_LNEG extends UnaryOperator{ - public I_LNEG(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LNEG, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("neg top long"); - } - } - - public static class I_LOOKUPSWITCH extends Switch{ - private final int[] matches; - - private final int npairs; - - public I_LOOKUPSWITCH(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LOOKUPSWITCH, _byteReader, _wide); - final int operandStart = _byteReader.getOffset(); - final int padLength = ((operandStart % 4) == 0) ? 0 : 4 - (operandStart % 4); - _byteReader.bytes(padLength); - offset = _byteReader.u4(); - npairs = _byteReader.u4(); - offsets = new int[npairs]; - matches = new int[npairs]; - for (int i = 0; i < npairs; i++) { - matches[i] = _byteReader.u4(); - offsets[i] = _byteReader.u4(); - } - } - - @Override public String getDescription() { - return ("help!"); - } - - public int[] getMatches() { - return (matches); - } - - public int getNpairs() { - return (npairs); - } - } - - public static class I_LOR extends BinaryOperator{ - public I_LOR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LOR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("or top two longs"); - } - } - - public static class I_LREM extends BinaryOperator{ - public I_LREM(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LREM, _byteReader, _wide); - - } - - @Override public String getDescription() { - return ("rem top two longs"); - } - } - - public static class I_LRETURN extends Return{ - public I_LRETURN(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LRETURN, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return popped long"); - } - } - - public static class I_LSHL extends BinaryOperator{ - public I_LSHL(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSHL, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("shift left top long"); - } - } - - public static class I_LSHR extends BinaryOperator{ - public I_LSHR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSHR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("shift right top long"); - } - } - - public static class I_LSTORE extends LocalVariableIndex08Store{ - public I_LSTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSTORE, _byteReader, _wide); - } - } - - public static class I_LSTORE_0 extends LocalVariableConstIndexStore{ - public I_LSTORE_0(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSTORE_0, _byteReader, _wide, 0); - } - } - - public static class I_LSTORE_1 extends LocalVariableConstIndexStore{ - public I_LSTORE_1(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSTORE_1, _byteReader, _wide, 1); - } - } - - public static class I_LSTORE_2 extends LocalVariableConstIndexStore{ - public I_LSTORE_2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSTORE_2, _byteReader, _wide, 2); - } - } - - public static class I_LSTORE_3 extends LocalVariableConstIndexStore{ - public I_LSTORE_3(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSTORE_3, _byteReader, _wide, 3); - } - } - - public static class I_LSUB extends BinaryOperator{ - public I_LSUB(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LSUB, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("sub top two longs"); - } - } - - public static class I_LUSHR extends BinaryOperator{ - public I_LUSHR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LUSHR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("shift right top long unsigned"); - } - } - - public static class I_LXOR extends BinaryOperator{ - public I_LXOR(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.LXOR, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("xor top two longs"); - } - } - - public static class I_MONITORENTER extends Instruction{ - public I_MONITORENTER(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.MONITORENTER, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop reference and inc monitor"); - } - } - - public static class I_MONITOREXIT extends Instruction{ - public I_MONITOREXIT(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.MONITOREXIT, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop reference and dec monitor"); - } - } - - public static class I_MULTIANEWARRAY extends Index16 implements New{ - private final int dimensions; - - public I_MULTIANEWARRAY(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.MULTIANEWARRAY, _byteReader, _wide); - dimensions = _byteReader.u1(); - } - - @Override public String getDescription() { - return ("create a multi dimension array of refernce types "); - } - - public int getDimensions() { - return (dimensions); - } - } - - public static class I_NEW extends Index16 implements New{ - public I_NEW(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.NEW, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("new"); - } - } - - public static class I_NEWARRAY extends Instruction implements New{ - private final int type; - - public I_NEWARRAY(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.NEWARRAY, _byteReader, _wide); - type = _byteReader.u1(); - } - - @Override public String getDescription() { - return ("new array simple type"); - } - - public int getType() { - return (type); - } - } - - public static class I_NOP extends Instruction{ - public I_NOP(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.NOP, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("no op"); - } - } - - public static class I_POP extends Instruction{ - public I_POP(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.POP, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop one item"); - } - } - - public static class I_POP2 extends Instruction{ - public I_POP2(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.POP2, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop 2 items"); - } - } - - public static class I_PUTFIELD extends Index16 implements AssignToInstanceField{ - public I_PUTFIELD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.PUTFIELD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop stack value into field referenced by 16 bit constant index"); - } - - @Override public int getConstantPoolFieldIndex() { - return (index); - } - - @Override public FieldEntry getConstantPoolFieldEntry() { - return (method.getConstantPool().getFieldEntry(getConstantPoolFieldIndex())); - } - - @Override public int getStackConsumeCount() { - return (2); - } - - @Override public int getStackProduceCount() { - return (0); - } - - @Override public Instruction getInstance() { - return (getFirstChild()); - } - - @Override public Instruction getValueToAssign() { - return (getLastChild()); - } - } - - public static class I_PUTSTATIC extends Index16 implements AssignToField{ - public I_PUTSTATIC(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.PUTSTATIC, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop stack value into 16 bit constant index as field"); - } - - @Override public int getConstantPoolFieldIndex() { - return (index); - } - - @Override public FieldEntry getConstantPoolFieldEntry() { - return (method.getConstantPool().getFieldEntry(getConstantPoolFieldIndex())); - } - - @Override public int getStackConsumeCount() { - return (1); - } - - @Override public int getStackProduceCount() { - return (0); - } - - @Override public Instruction getValueToAssign() { - return (getLastChild()); - } - } - - public static class I_RET extends Index08 implements AssignToLocalVariable{ - public I_RET(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.RET, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return to pc in local var index 08 bit"); - } - - @Override public LocalVariableInfo getLocalVariableInfo() { - return (method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(), getLocalVariableTableIndex())); - } - - @Override public boolean isDeclaration() { - return (method.getLocalVariableTableEntry().getVariable(getThisPC() + getLength(), getLocalVariableTableIndex()) - .getStart() == (getThisPC() + getLength())); - } - - @Override public int getLocalVariableTableIndex() { - return (index); - } - - // @Override Instruction getValue() { - // return (getFirstChild()); - //} - } - - public static class I_RETURN extends Return{ - public I_RETURN(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.RETURN, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("return void"); - } - } - - public static class I_SALOAD extends AccessArrayElement{ - public I_SALOAD(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.SALOAD, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("push short from arrayref and index"); - } - } - - public static class I_SASTORE extends AssignToArrayElement{ - public I_SASTORE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.SASTORE, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("pop short into arrayref[index]"); - } - } - - public static class I_SIPUSH extends ImmediateConstant{ - public I_SIPUSH(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.SIPUSH, _byteReader, _wide); - value = _byteReader.u2(); - } - - @Override public String getDescription() { - return ("push (short)"); - } - } - - public static class I_SWAP extends Instruction{ - public I_SWAP(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.SWAP, _byteReader, _wide); - } - - @Override public String getDescription() { - return ("swap top 2 items"); - } - } - - public static class I_TABLESWITCH extends Switch{ - private final int high; - - private final int low; - - public I_TABLESWITCH(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.TABLESWITCH, _byteReader, _wide); - final int operandStart = _byteReader.getOffset(); - final int padLength = ((operandStart % 4) == 0) ? 0 : 4 - (operandStart % 4); - _byteReader.bytes(padLength); - offset = _byteReader.u4(); - low = _byteReader.u4(); - high = _byteReader.u4(); - offsets = new int[(high - low) + 1]; - for (int i = low; i <= high; i++) { - offsets[i - low] = _byteReader.u4(); - } - } - - @Override public String getDescription() { - return ("help!"); - } - - public int getHigh() { - return (high); - } - - public int getLow() { - return (low); - } - } - - public static class I_WIDE extends Instruction{ - private boolean iinc; - - private int increment; - - private final int index; - - private final int wideopcode; - - public I_WIDE(MethodModel _methodPoolEntry, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, ByteCode.WIDE, _byteReader, _wide); - wideopcode = _byteReader.u1(); - index = _byteReader.u2(); - if ((((wideopcode >= 0x15) && (wideopcode <= 0x19)) || ((wideopcode >= 0x36) && (wideopcode <= 0x3a)) || (wideopcode == 0xa9))) { - iinc = false; - } else { - increment = _byteReader.u2(); - iinc = true; - } - } - - @Override public String getDescription() { - return ("help"); - } - - public int getIncrement() { - return (increment); - } - - public int getIndex() { - return (index); - } - - public int getWideopcode() { - return (wideopcode); - } - - public boolean isiinc() { - return (iinc); - } - } - - public static class I_END extends Instruction{ - public I_END(MethodModel method, int _pc) { - super(method, ByteCode.NONE, _pc); - } - - @Override public String getDescription() { - return ("END"); - } - } - - public static abstract class Index extends Instruction{ - protected int index; - - public Index(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - } - - public static abstract class IndexConst extends Index{ - public IndexConst(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide, int _index) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - index = _index; - } - } - - public static abstract class Index08 extends Index{ - public Index08(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - if (_wide) { - index = _byteReader.u2(); - } else { - index = _byteReader.u1(); - } - } - } - - public static abstract class Index16 extends Index{ - public Index16(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - index = _byteReader.u2(); - } - } - - public static abstract class Return extends Instruction{ - public Return(MethodModel _methodPoolEntry, ByteCode _byteCode, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _byteCode, _byteReader, _wide); - } - } - - public static abstract class Switch extends Branch{ - public Switch(MethodModel _methodPoolEntry, ByteCode _code, ByteReader _byteReader, boolean _wide) { - super(_methodPoolEntry, _code, _byteReader, _wide); - } - - protected int[] offsets; - - protected Instruction[] targets; - - public Instruction getTarget(int _index) { - return (targets[_index]); - } - - public void setTarget(int _index, Instruction _instruction) { - targets[_index] = _instruction; - } - - public int getAbsolute(int _index) { - return (getThisPC() + offsets[_index]); - } - - public int getOffset(int _index) { - return (offsets[_index]); - } - - public int[] getOffsets() { - return (offsets); - } - - public int getSize() { - return (offsets.length); - } - } - - public interface MethodCall{ - int getConstantPoolMethodIndex(); - - MethodEntry getConstantPoolMethodEntry(); - - Instruction getArg(int _arg); - } - - public interface VirtualMethodCall extends MethodCall{ - Instruction getInstanceReference(); - } - - public interface InterfaceConstantPoolMethodIndexAccessor{ - public int getConstantPoolInterfaceMethodIndex(); - - public ConstantPool.InterfaceMethodEntry getConstantPoolInterfaceMethodEntry(); - - public Instruction getInstanceReference(); - - public int getArgs(); - - public Instruction getArg(int _arg); - } - - public static interface New{ - } - - public interface FieldReference{ - public int getConstantPoolFieldIndex(); - - public FieldEntry getConstantPoolFieldEntry(); - } - - public interface AccessField extends FieldReference{ - - } - - public interface AssignToField extends FieldReference{ - Instruction getValueToAssign(); - } - - public interface AccessInstanceField extends AccessField{ - Instruction getInstance(); - } - - public interface AssignToInstanceField extends AssignToField{ - Instruction getInstance(); - } - - public interface LocalVariableTableIndexAccessor{ - int getLocalVariableTableIndex(); - - LocalVariableInfo getLocalVariableInfo(); - } - - public interface AccessLocalVariable extends LocalVariableTableIndexAccessor{ - - } - - public interface AssignToLocalVariable extends LocalVariableTableIndexAccessor{ - boolean isDeclaration(); - } - - public interface Constant { - T getValue(); - } - - @SuppressWarnings("unchecked") public interface ConstantPoolEntryConstant extends Constant{ - int getConstantPoolIndex(); - - ConstantPool.Entry getConstantPoolEntry(); - }; - - public interface HasOperator{ - Operator getOperator(); - } - - public interface Binary extends HasOperator{ - Instruction getLhs(); - - Instruction getRhs(); - } - - public interface Unary extends HasOperator{ - Instruction getUnary(); - } - - public static class CloneInstruction extends Instruction{ - private final Instruction cloning; - - public CloneInstruction(MethodModel method, Instruction _cloning) { - super(method, ByteCode.CLONE, -1); - cloning = _cloning; - } - - @Override public String getDescription() { - return ("CLONE! " + getByteCode()); - } - - @Override public int getStackConsumeCount() { - return (cloning.getStackConsumeCount()); - } - - @Override public int getStackProduceCount() { - return (cloning.getStackProduceCount()); - } - - @Override public Instruction getReal() { - return (cloning); - } - } - - public static class IncrementInstruction extends Instruction{ - private final Instruction fieldOrVariable; - - private final boolean isInc; - - private final boolean isPre; - - public Instruction getFieldOrVariableReference() { - return fieldOrVariable; - } - - public boolean isPre() { - return isPre; - } - - public IncrementInstruction(MethodModel method, Instruction _fieldOrVariable, boolean _isInc, boolean _isPre) { - super(method, ByteCode.INCREMENT, -1); - - fieldOrVariable = _fieldOrVariable; - isPre = _isPre; - isInc = _isInc; - } - - @Override public String getDescription() { - return ("INCREMENT Local Variable! " + getByteCode()); - } - - public boolean isInc() { - return (isInc); - } - - @Override public Instruction getStartInstruction() { - return (fieldOrVariable.getStartInstruction()); - } - } - - public static class InlineAssignInstruction extends Instruction{ - private final AssignToLocalVariable assignToLocalVariable; - - private final Instruction rhs; - - public InlineAssignInstruction(MethodModel method, AssignToLocalVariable _assignToLocalVariable, Instruction _rhs) { - super(method, ByteCode.INLINE_ASSIGN, -1); - assignToLocalVariable = _assignToLocalVariable; - rhs = _rhs; - } - - @Override public String getDescription() { - return ("INLINE ASSIGN! " + getByteCode()); - } - - public AssignToLocalVariable getAssignToLocalVariable() { - return (assignToLocalVariable); - } - - public Instruction getRhs() { - return (rhs); - } - } - - public static class FieldArrayElementAssign extends Instruction{ - private final AssignToArrayElement assignToArrayElement; - - private final Instruction rhs; - - public FieldArrayElementAssign(MethodModel method, AssignToArrayElement _assignToArrayElement, Instruction _rhs) { - super(method, ByteCode.FIELD_ARRAY_ELEMENT_ASSIGN, -1); - assignToArrayElement = _assignToArrayElement; - rhs = _rhs; - } - - @Override public String getDescription() { - return ("FIELD ARRAY ELEMENT INCREMENT! " + getByteCode()); - } - - public AssignToArrayElement getAssignToArrayElement() { - return (assignToArrayElement); - } - - public Instruction getRhs() { - return (rhs); - } - } - - public static class FieldArrayElementIncrement extends Instruction{ - private final AssignToArrayElement assignToArrayElement; - - private final boolean isPre; - - private final boolean isInc; - - public FieldArrayElementIncrement(MethodModel method, AssignToArrayElement _assignToArrayElement, boolean _isInc, - boolean _isPre) { - super(method, ByteCode.FIELD_ARRAY_ELEMENT_INCREMENT, -1); - assignToArrayElement = _assignToArrayElement; - isPre = _isPre; - isInc = _isInc; - } - - @Override public String getDescription() { - return ("FIELD ARRAY ELEMENT INCREMENT! " + getByteCode()); - } - - public AssignToArrayElement getAssignToArrayElement() { - return (assignToArrayElement); - } - - public boolean isPre() { - return (isPre); - } - - public boolean isInc() { - return (isInc); - } - } - - public static class MultiAssignInstruction extends Instruction{ - private final Instruction from, to, common; - - public MultiAssignInstruction(MethodModel method, Instruction _common, Instruction _from, Instruction _to) { - super(method, ByteCode.MULTI_ASSIGN, -1); - common = _common; - from = _from; - to = _to; - } - - @Override public String getDescription() { - return ("MULTIASSIGN! " + getByteCode()); - } - - public Instruction getTo() { - return (to); - } - - public Instruction getFrom() { - return (from); - } - - public Instruction getCommon() { - return (common); - } - } - - public static class FakeGoto extends UnconditionalBranch{ - - public FakeGoto(MethodModel _methodPoolEntry, Instruction _target) { - super(_methodPoolEntry, ByteCode.FAKEGOTO, _target); - } - - @Override public String getDescription() { - return "FAKE goto"; - } - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionTransformer.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionTransformer.java deleted file mode 100644 index 60363feb..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/instruction/InstructionTransformer.java +++ /dev/null @@ -1,53 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.instruction; - -public abstract class InstructionTransformer{ - - private final String description; - - public abstract Instruction transform(final ExpressionList _expressionList, final Instruction i); - - public InstructionTransformer(String _description) { - description = _description; - } - - public String getDescription() { - return (description); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/ConfigJNI.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/ConfigJNI.java deleted file mode 100644 index 96bf02c2..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/ConfigJNI.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.amd.aparapi.internal.jni; - -import com.amd.aparapi.Config; -import com.amd.aparapi.internal.annotation.UsedByJNICode; - -/** - * This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI - */ -public abstract class ConfigJNI{ - - /** - * Value defaults to com.amd.aparapi.config if not overridden by extending classes - */ - protected static final String propPkgName = Config.class.getPackage().getName(); - - /** - * Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer. - * - * Usage -Dcom.amd.aparapi.enableProfiling={true|false} - * - */ - @UsedByJNICode public static final boolean enableProfiling = Boolean.getBoolean(propPkgName + ".enableProfiling"); - - /** - * Allows the user to turn on OpenCL profiling for the JNI/OpenCL layer, this information will be written to CSV file - * - * Usage -Dcom.amd.aparapi.enableProfiling={true|false} - * - */ - @UsedByJNICode public static final boolean enableProfilingCSV = Boolean.getBoolean(propPkgName + ".enableProfilingCSV"); - - /** - * Allows the user to request that verbose JNI messages be dumped to stderr. - * - * Usage -Dcom.amd.aparapi.enableVerboseJNI={true|false} - * - */ - @UsedByJNICode public static final boolean enableVerboseJNI = Boolean.getBoolean(propPkgName + ".enableVerboseJNI"); - - /** - * Allows the user to request tracking of opencl resources. - * - * This is really a debugging option to help locate leaking OpenCL resources, this will be dumped to stderr. - * - * Usage -Dcom.amd.aparapi.enableOpenCLResourceTracking={true|false} - * - */ - @UsedByJNICode public static final boolean enableVerboseJNIOpenCLResourceTracking = Boolean.getBoolean(propPkgName - + ".enableVerboseJNIOpenCLResourceTracking"); - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/KernelArgJNI.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/KernelArgJNI.java deleted file mode 100644 index 270321ff..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/KernelArgJNI.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.amd.aparapi.internal.jni; - -import java.lang.reflect.Field; - -import com.amd.aparapi.internal.annotation.UsedByJNICode; - -/** - * This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI - */ -public abstract class KernelArgJNI{ - - /** - * The type of this KernelArg. Created by or-ing appropriate flags - * - * @see ARG_BOOLEAN - * @see ARG_BYTE - * @see ARG_CHAR - * @see ARG_FLOAT - * @see ARG_INT - * @see ARG_DOUBLE - * @see ARG_LONG - * @see ARG_SHORT - * @see ARG_ARRAY - * @see ARG_PRIMITIVE - * @see ARG_READ - * @see ARG_WRITE - * @see ARG_LOCAL - * @see ARG_GLOBAL - * @see ARG_CONSTANT - * @see ARG_ARRAYLENGTH - * @see ARG_APARAPI_BUF - * @see ARG_EXPLICIT - * @see ARG_EXPLICIT_WRITE - * @see ARG_OBJ_ARRAY_STRUCT - * @see ARG_APARAPI_BUF_HAS_ARRAY - * @see ARG_APARAPI_BUF_IS_DIRECT - */ - @UsedByJNICode protected int type; - - /** - * Name of the field - */ - @UsedByJNICode protected String name; - - /** - * If this field represents a Java array then the instance will be captured here - */ - @UsedByJNICode protected Object javaArray; - - /** - * If this field represents an aparapi buffer then the instance will be captured here - */ - @UsedByJNICode protected Object javaBuffer; - - /** - * If this is an array or a buffer then the size (in bytes) is held here - */ - @UsedByJNICode protected int sizeInBytes; - - /** - * If this is an array buffer then the number of elements is stored here - */ - @UsedByJNICode protected int numElements; - - - /** - * If this is an multidimensional array then the number of dimensions is stored here - */ - @UsedByJNICode protected int numDims; - - - /** - * If this is an multidimensional array then the dimensions are stored here - */ - @UsedByJNICode protected int[] dims; - - /** - * If this is an array buffer then the number of elements is stored here. - * - * At present only set for AparapiLocalBuffer objs, JNI multiplies this by localSize - */ - // @Annotations.Unused @UsedByJNICode protected int bytesPerLocalWidth; - - /** - * Only set for array objs, not used on JNI - */ - @UsedByJNICode protected Object array; - - @UsedByJNICode protected Object buffer; - - /** - * Field in Kernel class corresponding to this arg - */ - @UsedByJNICode protected Field field; -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/KernelRunnerJNI.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/KernelRunnerJNI.java deleted file mode 100644 index 45203930..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/KernelRunnerJNI.java +++ /dev/null @@ -1,308 +0,0 @@ -package com.amd.aparapi.internal.jni; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.amd.aparapi.annotation.Experimental; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.annotation.DocMe; -import com.amd.aparapi.internal.annotation.UsedByJNICode; - -import java.util.List; - -/** - * This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI - */ -public abstract class KernelRunnerJNI{ - - /** - * This 'bit' indicates that a particular KernelArg represents a boolean type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_BOOLEAN = 1 << 0; - - /** - * This 'bit' indicates that a particular KernelArg represents a byte type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_BYTE = 1 << 1; - - /** - * This 'bit' indicates that a particular KernelArg represents a float type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_FLOAT = 1 << 2; - - /** - * This 'bit' indicates that a particular KernelArg represents a int type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_INT = 1 << 3; - - /** - * This 'bit' indicates that a particular KernelArg represents a double type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_DOUBLE = 1 << 4; - - /** - * This 'bit' indicates that a particular KernelArg represents a long type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_LONG = 1 << 5; - - /** - * TODO: - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_SHORT = 1 << 6; - - /** - * This 'bit' indicates that a particular KernelArg represents an array.
      - * So ARG_ARRAY|ARG_INT tells us this arg is an array of int. - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_ARRAY = 1 << 7; - - /** - * This 'bit' indicates that a particular KernelArg represents a primitive (non array).
      - * So ARG_PRIMITIVE|ARG_INT tells us this arg is a primitive int. - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_PRIMITIVE = 1 << 8; - - /** - * This 'bit' indicates that a particular KernelArg is read by the Kernel (note from the Kernel's point of view).
      - * So ARG_ARRAY|ARG_INT|ARG_READ tells us this arg is an array of int's that are read by the kernel. - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_READ = 1 << 9; - - /** - * This 'bit' indicates that a particular KernelArg is mutated by the Kernel (note from the Kernel's point of view).
      - * So ARG_ARRAY|ARG_INT|ARG_WRITE tells us this arg is an array of int's that we expect the kernel to mutate. - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_WRITE = 1 << 10; - - /** - * This 'bit' indicates that a particular KernelArg resides in local memory in the generated OpenCL code.
      - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * @see com.amd.aparapi.annotation.Experimental - * - * @author gfrost - */ - @Experimental @UsedByJNICode protected static final int ARG_LOCAL = 1 << 11; - - /** - * This 'bit' indicates that a particular KernelArg resides in global memory in the generated OpenCL code.
      - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * @see com.amd.aparapi.annotation.Experimental - * - * @author gfrost - */ - @Experimental @UsedByJNICode protected static final int ARG_GLOBAL = 1 << 12; - - /** - * This 'bit' indicates that a particular KernelArg resides in constant memory in the generated OpenCL code.
      - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * @see com.amd.aparapi.annotation.Experimental - * - * @author gfrost - */ - @Experimental @UsedByJNICode protected static final int ARG_CONSTANT = 1 << 13; - - /** - * This 'bit' indicates that a particular KernelArg has it's length reference, in which case a synthetic arg is passed (name mangled) to the OpenCL kernel.
      - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_ARRAYLENGTH = 1 << 14; - - /** - * TODO: - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_APARAPI_BUFFER = 1 << 15; - - /** - * This 'bit' indicates that the arg has been explicitly marked for reading - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_EXPLICIT = 1 << 16; - - /** - * This 'bit' indicates that the arg has been explicitly marked for writing - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_EXPLICIT_WRITE = 1 << 17; - - /** - * TODO: - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_OBJ_ARRAY_STRUCT = 1 << 18; - - - /** - * This 'bit' indicates that a particular KernelArg represents a char type (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author rlamothe - */ - @UsedByJNICode protected static final int ARG_CHAR = 1 << 21; - - /** - * This 'bit' indicates that a particular KernelArg represents a static field (array or primitive). - * - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int ARG_STATIC = 1 << 22; - - /** - * This 'bit' indicates that we wish to enable profiling from the JNI code. - * - * @see com.amd.aparapi.annotations.UsedByJNICode - * - * @author gfrost - */ - //@UsedByJNICode protected static final int JNI_FLAG_ENABLE_PROFILING = 1 << 0; - - /** - * This 'bit' indicates that we wish to store profiling information in a CSV file from JNI code. - * - * @see com.amd.aparapi.annotations.UsedByJNICode - * - * @author gfrost - */ - // @UsedByJNICode protected static final int JNI_FLAG_ENABLE_PROFILING_CSV = 1 << 1; - - /** - * This 'bit' indicates that we want to execute on the GPU. - * - * Be careful changing final constants starting with JNI.
      - * - * @see com.amd.aparapi.internal.annotation.UsedByJNICode - * - * @author gfrost - */ - @UsedByJNICode protected static final int JNI_FLAG_USE_GPU = 1 << 2; - - /** - * This 'bit' indicates that we wish to enable verbose JNI layer messages to stderr.
      - * - * @see com.amd.aparapi.annotations.UsedByJNICode - * - * @author gfrost - */ - // @UsedByJNICode protected static final int JNI_FLAG_ENABLE_VERBOSE_JNI = 1 << 3; - - /** - * This 'bit' indicates that we wish to enable OpenCL resource tracking by JNI layer to be written to stderr.
      - * - * @see com.amd.aparapi.annotations.UsedByJNICode - * @see com.amd.aparapi.annotations.Experimental - * - * @author gfrost - */ - // @UsedByJNICode @Annotations.Experimental protected static final int JNI_FLAG_ENABLE_VERBOSE_JNI_OPENCL_RESOURCE_TRACKING = 1 << 4; - - /* - * Native methods - */ - - /** - * TODO: - * - * synchronized to avoid race in clGetPlatformIDs() in OpenCL lib problem should fixed in some future OpenCL version - * - * @param _kernel - * @param _device - * @param _flags - * @return - */ - @DocMe protected native synchronized long initJNI(Kernel _kernel, OpenCLDevice _device, int _flags); - - protected native int getJNI(long _jniContextHandle, Object _array); - - protected native long buildProgramJNI(long _jniContextHandle, String _source); - - protected native int setArgsJNI(long _jniContextHandle, KernelArgJNI[] _args, int argc); - - protected native int runKernelJNI(long _jniContextHandle, Range _range, boolean _needSync, int _passes); - - protected native int disposeJNI(long _jniContextHandle); - - protected native String getExtensionsJNI(long _jniContextHandle); - - protected native synchronized List getProfileInfoJNI(long _jniContextHandle); -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/OpenCLJNI.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/OpenCLJNI.java deleted file mode 100644 index 9fa18220..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/OpenCLJNI.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.internal.jni; - -import com.amd.aparapi.ProfileInfo; -import java.util.List; - -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.opencl.OpenCLArgDescriptor; -import com.amd.aparapi.internal.opencl.OpenCLKernel; -import com.amd.aparapi.internal.opencl.OpenCLMem; -import com.amd.aparapi.internal.opencl.OpenCLPlatform; -import com.amd.aparapi.internal.opencl.OpenCLProgram; - -/** - * This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI - */ -public abstract class OpenCLJNI{ - - protected native List getPlatforms(); - - protected native OpenCLProgram createProgram(OpenCLDevice context, String openCLSource); - - protected native OpenCLKernel createKernelJNI(OpenCLProgram program, String kernelName, OpenCLArgDescriptor[] args); - - protected native void invoke(OpenCLKernel openCLKernel, Object[] args); - - protected native void disposeKernel(OpenCLKernel openCLKernel); - - protected native void disposeProgram(OpenCLProgram openCLProgram); - - protected native List getProfileInfo(OpenCLProgram openCLProgram); - - protected native void remap(OpenCLProgram program, OpenCLMem mem, long address); - - protected native byte[] getBytes(String className); - - protected native void getMem(OpenCLProgram program, OpenCLMem mem); -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/RangeJNI.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/RangeJNI.java deleted file mode 100644 index 6273777e..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/jni/RangeJNI.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.amd.aparapi.internal.jni; - -import com.amd.aparapi.internal.annotation.UsedByJNICode; - -/** - * This class is intended to be used as a 'proxy' or 'facade' object for Java code to interact with JNI - */ -public abstract class RangeJNI{ - - @UsedByJNICode protected int globalSize_0 = 1; - - @UsedByJNICode protected int localSize_0 = 1; - - @UsedByJNICode protected int globalSize_1 = 1; - - @UsedByJNICode protected int localSize_1 = 1; - - @UsedByJNICode protected int globalSize_2 = 1; - - @UsedByJNICode protected int localSize_2 = 1; - - @UsedByJNICode protected int dims; - - @UsedByJNICode protected boolean valid = true; - - @UsedByJNICode protected boolean localIsDerived = false; -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelArg.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelArg.java deleted file mode 100644 index 9599bf04..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelArg.java +++ /dev/null @@ -1,263 +0,0 @@ -package com.amd.aparapi.internal.kernel; - -import java.lang.reflect.Field; -import java.nio.ByteBuffer; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.internal.jni.KernelArgJNI; -import com.amd.aparapi.internal.model.ClassModel; - -/** - * Each field (or captured field in the case of an anonymous inner class) referenced by any bytecode reachable from the users Kernel.run(), will - * need to be represented as a KernelArg. - * - * @see com.amd.aparapi.Kernel#execute(int _globalSize) - * - * @author gfrost - * - */ -public class KernelArg extends KernelArgJNI{ - - /** - * The byte array for obj conversion passed to opencl - */ - private byte[] objArrayBuffer; - - /** - * The ByteBuffer fronting the byte array - */ - private ByteBuffer objArrayByteBuffer; - - /** - * ClassModel of the array elements (not used on JNI side) - * - */ - private ClassModel objArrayElementModel; - - /** - * Only set for AparapiBuffer objs, - */ - private Object primitiveBuf; - - /** - * Size of this primitive - */ - private int primitiveSize; - - /** - * Default constructor - */ - protected KernelArg() { - - } - - /** - * @return the objArrayBuffer - */ - protected byte[] getObjArrayBuffer() { - return objArrayBuffer; - } - - /** - * @param objArrayBuffer the objArrayBuffer to set - */ - protected void setObjArrayBuffer(byte[] objArrayBuffer) { - this.objArrayBuffer = objArrayBuffer; - } - - /** - * @return the objArrayByteBuffer - */ - protected ByteBuffer getObjArrayByteBuffer() { - return objArrayByteBuffer; - } - - /** - * @param objArrayByteBuffer the objArrayByteBuffer to set - */ - protected void setObjArrayByteBuffer(ByteBuffer objArrayByteBuffer) { - this.objArrayByteBuffer = objArrayByteBuffer; - } - - /** - * @return the objArrayElementModel - */ - protected ClassModel getObjArrayElementModel() { - return objArrayElementModel; - } - - /** - * @param objArrayElementModel the objArrayElementModel to set - */ - protected void setObjArrayElementModel(ClassModel objArrayElementModel) { - this.objArrayElementModel = objArrayElementModel; - } - - /** - * @return the primitiveBuf - */ - protected Object getPrimitiveBuf() { - return primitiveBuf; - } - - /** - * @param primitiveBuf the primitiveBuf to set - */ - protected void setPrimitiveBuf(Object primitiveBuf) { - this.primitiveBuf = primitiveBuf; - } - - /** - * @return the primitiveSize - */ - protected int getPrimitiveSize() { - return primitiveSize; - } - - /** - * @param primitiveSize the primitiveSize to set - */ - protected void setPrimitiveSize(int primitiveSize) { - this.primitiveSize = primitiveSize; - } - - /** - * @return the type - */ - protected int getType() { - return type; - } - - /** - * @param type the type to set - */ - protected void setType(int type) { - this.type = type; - } - - /** - * @return the name - */ - protected String getName() { - return name; - } - - /** - * @param name the name to set - */ - protected void setName(String name) { - this.name = name; - } - - /** - * @return the javaArray - */ - protected Object getJavaArray() { - return javaArray; - } - - /** - * @param javaArray the javaArray to set - */ - protected void setJavaArray(Object javaArray) { - this.javaArray = javaArray; - } - - /** - * @return the sizeInBytes - */ - protected int getSizeInBytes() { - return sizeInBytes; - } - - /** - * @param sizeInBytes the sizeInBytes to set - */ - protected void setSizeInBytes(int sizeInBytes) { - this.sizeInBytes = sizeInBytes; - } - - /** - * @return the numElements - */ - protected int getNumElements() { - return numElements; - } - - /** - * @param numElements the numElements to set - */ - protected void setNumElements(int numElements) { - this.numElements = numElements; - } - - /** - * @return the array - */ - protected Object getArray() { - return array; - } - - /** - * @param array the array to set - */ - protected void setArray(Object array) { - this.array = array; - } - - /** - * @return the field - */ - protected Field getField() { - return field; - } - - /** - * @param field the field to set - */ - protected void setField(Field field) { - this.field = field; - } - - /** - * @return the buffer - */ - protected Object getJavaBuffer() { - return javaBuffer; - } - - /** - * @param buffer the buffer to set - */ - protected void setJavaBuffer(Object buffer) { - this.javaBuffer = buffer; - } - - /** - * @return the number of dimensions to buffer - */ - protected int getNumDims() { - return numDims; - } - - /** - * @param numDims the number of dimensions for the buffer - */ - protected void setNumDims(int numDims) { - this.numDims = numDims; - } - - /** - * @return the dimensions for the buffer - */ - protected int[] getDims() { - return dims; - } - - /** - * @param dims the dimsensions for the buffer - */ - protected void setDims(int[] dims) { - this.dims = dims; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelRunner.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelRunner.java deleted file mode 100644 index 821364c8..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/kernel/KernelRunner.java +++ /dev/null @@ -1,1388 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.kernel; - -import java.lang.reflect.Array; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.StringTokenizer; -import java.util.concurrent.BrokenBarrierException; -import java.util.concurrent.CyclicBarrier; -import java.util.concurrent.Executors; -import java.util.concurrent.ExecutorService; -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.amd.aparapi.Config; -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Kernel.Constant; -import com.amd.aparapi.Kernel.EXECUTION_MODE; -import com.amd.aparapi.Kernel.KernelState; -import com.amd.aparapi.Kernel.Local; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.exception.AparapiException; -import com.amd.aparapi.internal.exception.CodeGenException; -import com.amd.aparapi.internal.instruction.InstructionSet.TypeSpec; -import com.amd.aparapi.internal.jni.KernelRunnerJNI; -import com.amd.aparapi.internal.model.ClassModel; -import com.amd.aparapi.internal.model.Entrypoint; -import com.amd.aparapi.internal.util.UnsafeWrapper; -import com.amd.aparapi.internal.writer.KernelWriter; -import com.amd.aparapi.opencl.OpenCL; - -/** - * The class is responsible for executing Kernel implementations.
      - * - * The KernelRunner is the real workhorse for Aparapi. Each Kernel instance creates a single - * KernelRunner to encapsulate state and to help coordinate interactions between the Kernel - * and it's execution logic.
      - * - * The KernelRunner is created lazily as a result of calling Kernel.execute(). A this - * time the ExecutionMode is consulted to determine the default requested mode. This will dictate how - * the KernelRunner will attempt to execute the Kernel - * - * @see com.amd.aparapi.Kernel#execute(int _globalSize) - * - * @author gfrost - * - */ -public class KernelRunner extends KernelRunnerJNI{ - - private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - private long jniContextHandle = 0; - - private final Kernel kernel; - - private Entrypoint entryPoint; - - private int argc; - - private final ExecutorService threadPool = Executors.newCachedThreadPool(); - /** - * Create a KernelRunner for a specific Kernel instance. - * - * @param _kernel - */ - public KernelRunner(Kernel _kernel) { - kernel = _kernel; - } - - /** - * Kernel.dispose() delegates to KernelRunner.dispose() which delegates to disposeJNI() to actually close JNI data structures.
      - * - * @see KernelRunnerJNI#disposeJNI(long) - */ - public void dispose() { - if (kernel.getExecutionMode().isOpenCL()) { - disposeJNI(jniContextHandle); - } - threadPool.shutdownNow(); - } - - private Set capabilitiesSet; - - private long accumulatedExecutionTime = 0; - - private long conversionTime = 0; - - private long executionTime = 0; - - boolean hasFP64Support() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return (capabilitiesSet.contains(OpenCL.CL_KHR_FP64)); - } - - boolean hasSelectFPRoundingModeSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_SELECT_FPROUNDING_MODE); - } - - boolean hasGlobalInt32BaseAtomicsSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_GLOBAL_INT32_BASE_ATOMICS); - } - - boolean hasGlobalInt32ExtendedAtomicsSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_GLOBAL_INT32_EXTENDED_ATOMICS); - } - - boolean hasLocalInt32BaseAtomicsSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_LOCAL_INT32_BASE_ATOMICS); - } - - boolean hasLocalInt32ExtendedAtomicsSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_LOCAL_INT32_EXTENDED_ATOMICS); - } - - boolean hasInt64BaseAtomicsSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_INT64_BASE_ATOMICS); - } - - boolean hasInt64ExtendedAtomicsSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_INT64_EXTENDED_ATOMICS); - } - - boolean has3DImageWritesSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_3D_IMAGE_WRITES); - } - - boolean hasByteAddressableStoreSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_BYTE_ADDRESSABLE_SUPPORT); - } - - boolean hasFP16Support() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_FP16); - } - - boolean hasGLSharingSupport() { - if (capabilitiesSet == null) { - throw new IllegalStateException("Capabilities queried before they were initialized"); - } - return capabilitiesSet.contains(OpenCL.CL_KHR_GL_SHARING); - } - - /** - * Execute using a Java thread pool. Either because we were explicitly asked to do so, or because we 'fall back' after discovering an OpenCL issue. - * - * @param _range - * The globalSize requested by the user (via Kernel.execute(globalSize)) - * @param _passes - * The # of passes requested by the user (via Kernel.execute(globalSize, passes)). Note this is usually defaulted to 1 via Kernel.execute(globalSize). - * @return - */ - private long executeJava(final Range _range, final int _passes) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("executeJava: range = " + _range); - } - - if (kernel.getExecutionMode().equals(EXECUTION_MODE.SEQ)) { - /** - * SEQ mode is useful for testing trivial logic, but kernels which use SEQ mode cannot be used if the - * product of localSize(0..3) is >1. So we can use multi-dim ranges but only if the local size is 1 in all dimensions. - * - * As a result of this barrier is only ever 1 work item wide and probably should be turned into a no-op. - * - * So we need to check if the range is valid here. If not we have no choice but to punt. - */ - if ((_range.getLocalSize(0) * _range.getLocalSize(1) * _range.getLocalSize(2)) > 1) { - throw new IllegalStateException("Can't run range with group size >1 sequentially. Barriers would deadlock!"); - } - - final Kernel kernelClone = kernel.clone(); - final KernelState kernelState = kernelClone.getKernelState(); - - kernelState.setRange(_range); - kernelState.setGroupId(0, 0); - kernelState.setGroupId(1, 0); - kernelState.setGroupId(2, 0); - kernelState.setLocalId(0, 0); - kernelState.setLocalId(1, 0); - kernelState.setLocalId(2, 0); - kernelState.setLocalBarrier(new CyclicBarrier(1)); - - for (int passId = 0; passId < _passes; passId++) { - kernelState.setPassId(passId); - - if (_range.getDims() == 1) { - for (int id = 0; id < _range.getGlobalSize(0); id++) { - kernelState.setGlobalId(0, id); - kernelClone.run(); - } - } else if (_range.getDims() == 2) { - for (int x = 0; x < _range.getGlobalSize(0); x++) { - kernelState.setGlobalId(0, x); - - for (int y = 0; y < _range.getGlobalSize(1); y++) { - kernelState.setGlobalId(1, y); - kernelClone.run(); - } - } - } else if (_range.getDims() == 3) { - for (int x = 0; x < _range.getGlobalSize(0); x++) { - kernelState.setGlobalId(0, x); - - for (int y = 0; y < _range.getGlobalSize(1); y++) { - kernelState.setGlobalId(1, y); - - for (int z = 0; z < _range.getGlobalSize(2); z++) { - kernelState.setGlobalId(2, z); - kernelClone.run(); - } - - kernelClone.run(); - } - } - } - } - } else { - final int threads = _range.getLocalSize(0) * _range.getLocalSize(1) * _range.getLocalSize(2); - final int globalGroups = _range.getNumGroups(0) * _range.getNumGroups(1) * _range.getNumGroups(2); - /** - * This joinBarrier is the barrier that we provide for the kernel threads to rendezvous with the current dispatch thread. - * So this barrier is threadCount+1 wide (the +1 is for the dispatch thread) - */ - final CyclicBarrier joinBarrier = new CyclicBarrier(threads + 1); - - /** - * This localBarrier is only ever used by the kernels. If the kernel does not use the barrier the threads - * can get out of sync, we promised nothing in JTP mode. - * - * As with OpenCL all threads within a group must wait at the barrier or none. It is a user error (possible deadlock!) - * if the barrier is in a conditional that is only executed by some of the threads within a group. - * - * Kernel developer must understand this. - * - * This barrier is threadCount wide. We never hit the barrier from the dispatch thread. - */ - final CyclicBarrier localBarrier = new CyclicBarrier(threads); - - for (int passId = 0; passId < _passes; passId++) { - /** - * Note that we emulate OpenCL by creating one thread per localId (across the group). - * - * So threadCount == range.getLocalSize(0)*range.getLocalSize(1)*range.getLocalSize(2); - * - * For a 1D range of 12 groups of 4 we create 4 threads. One per localId(0). - * - * We also clone the kernel 4 times. One per thread. - * - * We create local barrier which has a width of 4 - * - * Thread-0 handles localId(0) (global 0,4,8) - * Thread-1 handles localId(1) (global 1,5,7) - * Thread-2 handles localId(2) (global 2,6,10) - * Thread-3 handles localId(3) (global 3,7,11) - * - * This allows all threads to synchronize using the local barrier. - * - * Initially the use of local buffers seems broken as the buffers appears to be per Kernel. - * Thankfully Kernel.clone() performs a shallow clone of all buffers (local and global) - * So each of the cloned kernels actually still reference the same underlying local/global buffers. - * - * If the kernel uses local buffers but does not use barriers then it is possible for different groups - * to see mutations from each other (unlike OpenCL), however if the kernel does not us barriers then it - * cannot assume any coherence in OpenCL mode either (the failure mode will be different but still wrong) - * - * So even JTP mode use of local buffers will need to use barriers. Not for the same reason as OpenCL but to keep groups in lockstep. - * - **/ - for (int id = 0; id < threads; id++) { - final int threadId = id; - - /** - * We clone one kernel for each thread. - * - * They will all share references to the same range, localBarrier and global/local buffers because the clone is shallow. - * We need clones so that each thread can assign 'state' (localId/globalId/groupId) without worrying - * about other threads. - */ - final Kernel kernelClone = kernel.clone(); - final KernelState kernelState = kernelClone.getKernelState(); - - kernelState.setRange(_range); - kernelState.setLocalBarrier(localBarrier); - kernelState.setPassId(passId); - - threadPool.submit(new Runnable(){ - @Override public void run() { - for (int globalGroupId = 0; globalGroupId < globalGroups; globalGroupId++) { - - if (_range.getDims() == 1) { - kernelState.setLocalId(0, (threadId % _range.getLocalSize(0))); - kernelState.setGlobalId(0, (threadId + (globalGroupId * threads))); - kernelState.setGroupId(0, globalGroupId); - } else if (_range.getDims() == 2) { - - /** - * Consider a 12x4 grid of 4*2 local groups - *
      -                            *                                             threads = 4*2 = 8
      -                            *                                             localWidth=4
      -                            *                                             localHeight=2
      -                            *                                             globalWidth=12
      -                            *                                             globalHeight=4
      -                            * 
      -                            *    00 01 02 03 | 04 05 06 07 | 08 09 10 11  
      -                            *    12 13 14 15 | 16 17 18 19 | 20 21 22 23
      -                            *    ------------+-------------+------------
      -                            *    24 25 26 27 | 28 29 30 31 | 32 33 34 35
      -                            *    36 37 38 39 | 40 41 42 43 | 44 45 46 47  
      -                            *    
      -                            *    00 01 02 03 | 00 01 02 03 | 00 01 02 03  threadIds : [0..7]*6
      -                            *    04 05 06 07 | 04 05 06 07 | 04 05 06 07
      -                            *    ------------+-------------+------------
      -                            *    00 01 02 03 | 00 01 02 03 | 00 01 02 03
      -                            *    04 05 06 07 | 04 05 06 07 | 04 05 06 07  
      -                            *    
      -                            *    00 00 00 00 | 01 01 01 01 | 02 02 02 02  groupId[0] : 0..6 
      -                            *    00 00 00 00 | 01 01 01 01 | 02 02 02 02   
      -                            *    ------------+-------------+------------
      -                            *    00 00 00 00 | 01 01 01 01 | 02 02 02 02  
      -                            *    00 00 00 00 | 01 01 01 01 | 02 02 02 02
      -                            *    
      -                            *    00 00 00 00 | 00 00 00 00 | 00 00 00 00  groupId[1] : 0..6 
      -                            *    00 00 00 00 | 00 00 00 00 | 00 00 00 00   
      -                            *    ------------+-------------+------------
      -                            *    01 01 01 01 | 01 01 01 01 | 01 01 01 01 
      -                            *    01 01 01 01 | 01 01 01 01 | 01 01 01 01
      -                            *         
      -                            *    00 01 02 03 | 08 09 10 11 | 16 17 18 19  globalThreadIds == threadId + groupId * threads;
      -                            *    04 05 06 07 | 12 13 14 15 | 20 21 22 23
      -                            *    ------------+-------------+------------
      -                            *    24 25 26 27 | 32[33]34 35 | 40 41 42 43
      -                            *    28 29 30 31 | 36 37 38 39 | 44 45 46 47   
      -                            *          
      -                            *    00 01 02 03 | 00 01 02 03 | 00 01 02 03  localX = threadId % localWidth; (for globalThreadId 33 = threadId = 01 : 01%4 =1)
      -                            *    00 01 02 03 | 00 01 02 03 | 00 01 02 03   
      -                            *    ------------+-------------+------------
      -                            *    00 01 02 03 | 00[01]02 03 | 00 01 02 03 
      -                            *    00 01 02 03 | 00 01 02 03 | 00 01 02 03
      -                            *     
      -                            *    00 00 00 00 | 00 00 00 00 | 00 00 00 00  localY = threadId /localWidth  (for globalThreadId 33 = threadId = 01 : 01/4 =0)
      -                            *    01 01 01 01 | 01 01 01 01 | 01 01 01 01   
      -                            *    ------------+-------------+------------
      -                            *    00 00 00 00 | 00[00]00 00 | 00 00 00 00 
      -                            *    01 01 01 01 | 01 01 01 01 | 01 01 01 01
      -                            *     
      -                            *    00 01 02 03 | 04 05 06 07 | 08 09 10 11  globalX=
      -                            *    00 01 02 03 | 04 05 06 07 | 08 09 10 11     groupsPerLineWidth=globalWidth/localWidth (=12/4 =3)
      -                            *    ------------+-------------+------------     groupInset =groupId%groupsPerLineWidth (=4%3 = 1)
      -                            *    00 01 02 03 | 04[05]06 07 | 08 09 10 11 
      -                            *    00 01 02 03 | 04 05 06 07 | 08 09 10 11     globalX = groupInset*localWidth+localX (= 1*4+1 = 5)
      -                            *     
      -                            *    00 00 00 00 | 00 00 00 00 | 00 00 00 00  globalY
      -                            *    01 01 01 01 | 01 01 01 01 | 01 01 01 01      
      -                            *    ------------+-------------+------------
      -                            *    02 02 02 02 | 02[02]02 02 | 02 02 02 02 
      -                            *    03 03 03 03 | 03 03 03 03 | 03 03 03 03
      -                            *    
      -                            * 
      - * Assume we are trying to locate the id's for #33 - * - */ - - kernelState.setLocalId(0, (threadId % _range.getLocalSize(0))); // threadId % localWidth = (for 33 = 1 % 4 = 1) - kernelState.setLocalId(1, (threadId / _range.getLocalSize(0))); // threadId / localWidth = (for 33 = 1 / 4 == 0) - - final int groupInset = globalGroupId % _range.getNumGroups(0); // 4%3 = 1 - kernelState.setGlobalId(0, ((groupInset * _range.getLocalSize(0)) + kernelState.getLocalIds()[0])); // 1*4+1=5 - - final int completeLines = (globalGroupId / _range.getNumGroups(0)) * _range.getLocalSize(1);// (4/3) * 2 - kernelState.setGlobalId(1, (completeLines + kernelState.getLocalIds()[1])); // 2+0 = 2 - kernelState.setGroupId(0, (globalGroupId % _range.getNumGroups(0))); - kernelState.setGroupId(1, (globalGroupId / _range.getNumGroups(0))); - } else if (_range.getDims() == 3) { - - //Same as 2D actually turns out that localId[0] is identical for all three dims so could be hoisted out of conditional code - - kernelState.setLocalId(0, (threadId % _range.getLocalSize(0))); - - kernelState.setLocalId(1, ((threadId / _range.getLocalSize(0)) % _range.getLocalSize(1))); - - // the thread id's span WxHxD so threadId/(WxH) should yield the local depth - kernelState.setLocalId(2, (threadId / (_range.getLocalSize(0) * _range.getLocalSize(1)))); - - kernelState.setGlobalId( - 0, - (((globalGroupId % _range.getNumGroups(0)) * _range.getLocalSize(0)) + kernelState.getLocalIds()[0])); - - kernelState.setGlobalId( - 1, - ((((globalGroupId / _range.getNumGroups(0)) * _range.getLocalSize(1)) % _range.getGlobalSize(1)) + kernelState - .getLocalIds()[1])); - - kernelState.setGlobalId( - 2, - (((globalGroupId / (_range.getNumGroups(0) * _range.getNumGroups(1))) * _range.getLocalSize(2)) + kernelState - .getLocalIds()[2])); - - kernelState.setGroupId(0, (globalGroupId % _range.getNumGroups(0))); - kernelState.setGroupId(1, ((globalGroupId / _range.getNumGroups(0)) % _range.getNumGroups(1))); - kernelState.setGroupId(2, (globalGroupId / (_range.getNumGroups(0) * _range.getNumGroups(1)))); - } - - kernelClone.run(); - } - - await(joinBarrier); // This thread will rendezvous with dispatch thread here. This is effectively a join. - } - }); - } - - await(joinBarrier); // This dispatch thread waits for all worker threads here. - } - } // execution mode == JTP - - return 0; - } - - private static void await(CyclicBarrier _barrier) { - try { - _barrier.await(); - } catch (final InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final BrokenBarrierException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - private KernelArg[] args = null; - - private boolean usesOopConversion = false; - - /** - * - * @param arg - * @return - * @throws AparapiException - */ - private boolean prepareOopConversionBuffer(KernelArg arg) throws AparapiException { - usesOopConversion = true; - final Class arrayClass = arg.getField().getType(); - ClassModel c = null; - boolean didReallocate = false; - - if (arg.getObjArrayElementModel() == null) { - final String tmp = arrayClass.getName().substring(2).replace("/", "."); - final String arrayClassInDotForm = tmp.substring(0, tmp.length() - 1); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("looking for type = " + arrayClassInDotForm); - } - - // get ClassModel of obj array from entrypt.objectArrayFieldsClasses - c = entryPoint.getObjectArrayFieldsClasses().get(arrayClassInDotForm); - arg.setObjArrayElementModel(c); - } else { - c = arg.getObjArrayElementModel(); - } - assert c != null : "should find class for elements " + arrayClass.getName(); - - final int arrayBaseOffset = UnsafeWrapper.arrayBaseOffset(arrayClass); - final int arrayScale = UnsafeWrapper.arrayIndexScale(arrayClass); - - if (logger.isLoggable(Level.FINEST)) { - logger.finest("Syncing obj array type = " + arrayClass + " cvtd= " + c.getClassWeAreModelling().getName() - + "arrayBaseOffset=" + arrayBaseOffset + " arrayScale=" + arrayScale); - } - - int objArraySize = 0; - Object newRef = null; - try { - newRef = arg.getField().get(kernel); - objArraySize = Array.getLength(newRef); - } catch (final IllegalAccessException e) { - throw new AparapiException(e); - } - - assert (newRef != null) && (objArraySize != 0) : "no data"; - - final int totalStructSize = c.getTotalStructSize(); - final int totalBufferSize = objArraySize * totalStructSize; - - // allocate ByteBuffer if first time or array changed - if ((arg.getObjArrayBuffer() == null) || (newRef != arg.getArray())) { - final ByteBuffer structBuffer = ByteBuffer.allocate(totalBufferSize); - arg.setObjArrayByteBuffer(structBuffer.order(ByteOrder.LITTLE_ENDIAN)); - arg.setObjArrayBuffer(arg.getObjArrayByteBuffer().array()); - didReallocate = true; - if (logger.isLoggable(Level.FINEST)) { - logger.finest("objArraySize = " + objArraySize + " totalStructSize= " + totalStructSize + " totalBufferSize=" - + totalBufferSize); - } - } else { - arg.getObjArrayByteBuffer().clear(); - } - - // copy the fields that the JNI uses - arg.setJavaArray(arg.getObjArrayBuffer()); - arg.setNumElements(objArraySize); - arg.setSizeInBytes(totalBufferSize); - - for (int j = 0; j < objArraySize; j++) { - int sizeWritten = 0; - - final Object object = UnsafeWrapper.getObject(newRef, arrayBaseOffset + (arrayScale * j)); - for (int i = 0; i < c.getStructMemberTypes().size(); i++) { - final TypeSpec t = c.getStructMemberTypes().get(i); - final long offset = c.getStructMemberOffsets().get(i); - - if (logger.isLoggable(Level.FINEST)) { - logger.finest("name = " + c.getStructMembers().get(i).getNameAndTypeEntry().getNameUTF8Entry().getUTF8() + " t= " - + t); - } - - switch (t) { - case I: { - final int x = UnsafeWrapper.getInt(object, offset); - arg.getObjArrayByteBuffer().putInt(x); - sizeWritten += t.getSize(); - break; - } - case F: { - final float x = UnsafeWrapper.getFloat(object, offset); - arg.getObjArrayByteBuffer().putFloat(x); - sizeWritten += t.getSize(); - break; - } - case J: { - final long x = UnsafeWrapper.getLong(object, offset); - arg.getObjArrayByteBuffer().putLong(x); - sizeWritten += t.getSize(); - break; - } - case Z: { - final boolean x = UnsafeWrapper.getBoolean(object, offset); - arg.getObjArrayByteBuffer().put(x == true ? (byte) 1 : (byte) 0); - // Booleans converted to 1 byte C chars for opencl - sizeWritten += TypeSpec.B.getSize(); - break; - } - case B: { - final byte x = UnsafeWrapper.getByte(object, offset); - arg.getObjArrayByteBuffer().put(x); - sizeWritten += t.getSize(); - break; - } - case D: { - throw new AparapiException("Double not implemented yet"); - } - default: - assert true == false : "typespec did not match anything"; - throw new AparapiException("Unhandled type in buffer conversion"); - } - } - - // add padding here if needed - if (logger.isLoggable(Level.FINEST)) { - logger.finest("sizeWritten = " + sizeWritten + " totalStructSize= " + totalStructSize); - } - - assert sizeWritten <= totalStructSize : "wrote too much into buffer"; - - while (sizeWritten < totalStructSize) { - if (logger.isLoggable(Level.FINEST)) { - logger.finest(arg.getName() + " struct pad byte = " + sizeWritten + " totalStructSize= " + totalStructSize); - } - arg.getObjArrayByteBuffer().put((byte) -1); - sizeWritten++; - } - } - - assert arg.getObjArrayByteBuffer().arrayOffset() == 0 : "should be zero"; - - return didReallocate; - } - - private void extractOopConversionBuffer(KernelArg arg) throws AparapiException { - final Class arrayClass = arg.getField().getType(); - final ClassModel c = arg.getObjArrayElementModel(); - assert c != null : "should find class for elements: " + arrayClass.getName(); - assert arg.getArray() != null : "array is null"; - - final int arrayBaseOffset = UnsafeWrapper.arrayBaseOffset(arrayClass); - final int arrayScale = UnsafeWrapper.arrayIndexScale(arrayClass); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("Syncing field:" + arg.getName() + ", bb=" + arg.getObjArrayByteBuffer() + ", type = " + arrayClass); - } - - int objArraySize = 0; - try { - objArraySize = Array.getLength(arg.getField().get(kernel)); - } catch (final IllegalAccessException e) { - throw new AparapiException(e); - } - - assert objArraySize > 0 : "should be > 0"; - - final int totalStructSize = c.getTotalStructSize(); - // int totalBufferSize = objArraySize * totalStructSize; - // assert arg.objArrayBuffer.length == totalBufferSize : "size should match"; - - arg.getObjArrayByteBuffer().rewind(); - - for (int j = 0; j < objArraySize; j++) { - int sizeWritten = 0; - final Object object = UnsafeWrapper.getObject(arg.getArray(), arrayBaseOffset + (arrayScale * j)); - for (int i = 0; i < c.getStructMemberTypes().size(); i++) { - final TypeSpec t = c.getStructMemberTypes().get(i); - final long offset = c.getStructMemberOffsets().get(i); - switch (t) { - case I: { - // read int value from buffer and store into obj in the array - final int x = arg.getObjArrayByteBuffer().getInt(); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("fType = " + t.getShortName() + " x= " + x); - } - UnsafeWrapper.putInt(object, offset, x); - sizeWritten += t.getSize(); - break; - } - case F: { - final float x = arg.getObjArrayByteBuffer().getFloat(); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("fType = " + t.getShortName() + " x= " + x); - } - UnsafeWrapper.putFloat(object, offset, x); - sizeWritten += t.getSize(); - break; - } - case J: { - final long x = arg.getObjArrayByteBuffer().getLong(); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("fType = " + t.getShortName() + " x= " + x); - } - UnsafeWrapper.putLong(object, offset, x); - sizeWritten += t.getSize(); - break; - } - case Z: { - final byte x = arg.getObjArrayByteBuffer().get(); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("fType = " + t.getShortName() + " x= " + x); - } - UnsafeWrapper.putBoolean(object, offset, (x == 1 ? true : false)); - // Booleans converted to 1 byte C chars for open cl - sizeWritten += TypeSpec.B.getSize(); - break; - } - case B: { - final byte x = arg.getObjArrayByteBuffer().get(); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("fType = " + t.getShortName() + " x= " + x); - } - UnsafeWrapper.putByte(object, offset, x); - sizeWritten += t.getSize(); - break; - } - case D: { - throw new AparapiException("Double not implemented yet"); - } - default: - assert true == false : "typespec did not match anything"; - throw new AparapiException("Unhandled type in buffer conversion"); - } - } - - // add padding here if needed - if (logger.isLoggable(Level.FINEST)) { - logger.finest("sizeWritten = " + sizeWritten + " totalStructSize= " + totalStructSize); - } - - assert sizeWritten <= totalStructSize : "wrote too much into buffer"; - - while (sizeWritten < totalStructSize) { - // skip over pad bytes - arg.getObjArrayByteBuffer().get(); - sizeWritten++; - } - } - } - - private void restoreObjects() throws AparapiException { - for (int i = 0; i < argc; i++) { - final KernelArg arg = args[i]; - if ((arg.getType() & ARG_OBJ_ARRAY_STRUCT) != 0) { - extractOopConversionBuffer(arg); - } - } - } - - private boolean updateKernelArrayRefs() throws AparapiException { - boolean needsSync = false; - - for (int i = 0; i < argc; i++) { - final KernelArg arg = args[i]; - try { - if ((arg.getType() & ARG_ARRAY) != 0) { - Object newArrayRef; - newArrayRef = arg.getField().get(kernel); - - if (newArrayRef == null) { - throw new IllegalStateException("Cannot send null refs to kernel, reverting to java"); - } - - String fieldName = arg.getField().getName(); - int arrayLength = Array.getLength(newArrayRef); - Integer privateMemorySize = ClassModel.getPrivateMemorySizeFromField(arg.getField()); - if (privateMemorySize == null) { - privateMemorySize = ClassModel.getPrivateMemorySizeFromFieldName(fieldName); - } - if (privateMemorySize != null) { - if (arrayLength > privateMemorySize) { - throw new IllegalStateException("__private array field " + fieldName + " has illegal length " + arrayLength + " > " + privateMemorySize); - } - } - - if ((arg.getType() & ARG_OBJ_ARRAY_STRUCT) != 0) { - prepareOopConversionBuffer(arg); - } else { - // set up JNI fields for normal arrays - arg.setJavaArray(newArrayRef); - arg.setNumElements(arrayLength); - arg.setSizeInBytes(arg.getNumElements() * arg.getPrimitiveSize()); - - if (((args[i].getType() & ARG_EXPLICIT) != 0) && puts.contains(newArrayRef)) { - args[i].setType(args[i].getType() | ARG_EXPLICIT_WRITE); - // System.out.println("detected an explicit write " + args[i].name); - puts.remove(newArrayRef); - } - } - - if (newArrayRef != arg.getArray()) { - needsSync = true; - - if (logger.isLoggable(Level.FINE)) { - logger.fine("saw newArrayRef for " + arg.getName() + " = " + newArrayRef + ", newArrayLen = " - + Array.getLength(newArrayRef)); - } - } - - arg.setArray(newArrayRef); - assert arg.getArray() != null : "null array ref"; - } - } catch (final IllegalArgumentException e) { - e.printStackTrace(); - } catch (final IllegalAccessException e) { - e.printStackTrace(); - } - } - return needsSync; - } - - // private int numAvailableProcessors = Runtime.getRuntime().availableProcessors(); - - private Kernel executeOpenCL(final String _entrypointName, final Range _range, final int _passes) throws AparapiException { - /* - if (_range.getDims() > getMaxWorkItemDimensionsJNI(jniContextHandle)) { - throw new RangeException("Range dim size " + _range.getDims() + " > device " - + getMaxWorkItemDimensionsJNI(jniContextHandle)); - } - if (_range.getWorkGroupSize() > getMaxWorkGroupSizeJNI(jniContextHandle)) { - throw new RangeException("Range workgroup size " + _range.getWorkGroupSize() + " > device " - + getMaxWorkGroupSizeJNI(jniContextHandle)); - } - - if (_range.getGlobalSize(0) > getMaxWorkItemSizeJNI(jniContextHandle, 0)) { - throw new RangeException("Range globalsize 0 " + _range.getGlobalSize(0) + " > device " - + getMaxWorkItemSizeJNI(jniContextHandle, 0)); - } - if (_range.getDims() > 1) { - if (_range.getGlobalSize(1) > getMaxWorkItemSizeJNI(jniContextHandle, 1)) { - throw new RangeException("Range globalsize 1 " + _range.getGlobalSize(1) + " > device " - + getMaxWorkItemSizeJNI(jniContextHandle, 1)); - } - if (_range.getDims() > 2) { - if (_range.getGlobalSize(2) > getMaxWorkItemSizeJNI(jniContextHandle, 2)) { - throw new RangeException("Range globalsize 2 " + _range.getGlobalSize(2) + " > device " - + getMaxWorkItemSizeJNI(jniContextHandle, 2)); - } - } - } - - - if (logger.isLoggable(Level.FINE)) { - logger.fine("maxComputeUnits=" + this.getMaxComputeUnitsJNI(jniContextHandle)); - logger.fine("maxWorkGroupSize=" + this.getMaxWorkGroupSizeJNI(jniContextHandle)); - logger.fine("maxWorkItemDimensions=" + this.getMaxWorkItemDimensionsJNI(jniContextHandle)); - logger.fine("maxWorkItemSize(0)=" + getMaxWorkItemSizeJNI(jniContextHandle, 0)); - if (_range.getDims() > 1) { - logger.fine("maxWorkItemSize(1)=" + getMaxWorkItemSizeJNI(jniContextHandle, 1)); - if (_range.getDims() > 2) { - logger.fine("maxWorkItemSize(2)=" + getMaxWorkItemSizeJNI(jniContextHandle, 2)); - } - } - } - */ - // Read the array refs after kernel may have changed them - // We need to do this as input to computing the localSize - assert args != null : "args should not be null"; - final boolean needSync = updateKernelArrayRefs(); - if (needSync && logger.isLoggable(Level.FINE)) { - logger.fine("Need to resync arrays on " + kernel.getClass().getName()); - } - - // native side will reallocate array buffers if necessary - if (runKernelJNI(jniContextHandle, _range, needSync, _passes) != 0) { - logger.warning("### CL exec seems to have failed. Trying to revert to Java ###"); - kernel.setFallbackExecutionMode(); - return execute(_entrypointName, _range, _passes); - } - - if (usesOopConversion == true) { - restoreObjects(); - } - - if (logger.isLoggable(Level.FINE)) { - logger.fine("executeOpenCL completed. " + _range); - } - - return kernel; - } - - public synchronized Kernel execute(Kernel.Entry entry, final Range _range, final int _passes) { - System.out.println("execute(Kernel.Entry, size) not implemented"); - return (kernel); - } - - synchronized private Kernel fallBackAndExecute(String _entrypointName, final Range _range, final int _passes) { - if (kernel.hasNextExecutionMode()) { - kernel.tryNextExecutionMode(); - } else { - kernel.setFallbackExecutionMode(); - } - - return execute(_entrypointName, _range, _passes); - } - - synchronized private Kernel warnFallBackAndExecute(String _entrypointName, final Range _range, final int _passes, - Exception _exception) { - if (logger.isLoggable(Level.WARNING)) { - logger.warning("Reverting to Java Thread Pool (JTP) for " + kernel.getClass() + ": " + _exception.getMessage()); - _exception.printStackTrace(); - } - return fallBackAndExecute(_entrypointName, _range, _passes); - } - - synchronized private Kernel warnFallBackAndExecute(String _entrypointName, final Range _range, final int _passes, String _excuse) { - logger.warning("Reverting to Java Thread Pool (JTP) for " + kernel.getClass() + ": " + _excuse); - return fallBackAndExecute(_entrypointName, _range, _passes); - } - - public synchronized Kernel execute(String _entrypointName, final Range _range, final int _passes) { - - long executeStartTime = System.currentTimeMillis(); - - if (_range == null) { - throw new IllegalStateException("range can't be null"); - } - - /* for backward compatibility reasons we still honor execution mode */ - if (kernel.getExecutionMode().isOpenCL()) { - // System.out.println("OpenCL"); - - // See if user supplied a Device - Device device = _range.getDevice(); - - if ((device == null) || (device instanceof OpenCLDevice)) { - if (entryPoint == null) { - try { - final ClassModel classModel = new ClassModel(kernel.getClass()); - entryPoint = classModel.getEntrypoint(_entrypointName, kernel); - } catch (final Exception exception) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, exception); - } - - if ((entryPoint != null) && !entryPoint.shouldFallback()) { - synchronized (Kernel.class) { // This seems to be needed because of a race condition uncovered with issue #68 http://code.google.com/p/aparapi/issues/detail?id=68 - if (device != null && !(device instanceof OpenCLDevice)) { - throw new IllegalStateException("range's device is not suitable for OpenCL "); - } - - OpenCLDevice openCLDevice = (OpenCLDevice) device; // still might be null! - - int jniFlags = 0; - if (openCLDevice == null) { - if (kernel.getExecutionMode().equals(EXECUTION_MODE.GPU)) { - // We used to treat as before by getting first GPU device - // now we get the best GPU - openCLDevice = (OpenCLDevice) OpenCLDevice.best(); - jniFlags |= JNI_FLAG_USE_GPU; // this flag might be redundant now. - } else { - // We fetch the first CPU device - openCLDevice = (OpenCLDevice) OpenCLDevice.firstCPU(); - if (openCLDevice == null) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, - "CPU request can't be honored not CPU device"); - } - } - } else { - if (openCLDevice.getType() == Device.TYPE.GPU) { - jniFlags |= JNI_FLAG_USE_GPU; // this flag might be redundant now. - } - } - - // jniFlags |= (Config.enableProfiling ? JNI_FLAG_ENABLE_PROFILING : 0); - // jniFlags |= (Config.enableProfilingCSV ? JNI_FLAG_ENABLE_PROFILING_CSV | JNI_FLAG_ENABLE_PROFILING : 0); - // jniFlags |= (Config.enableVerboseJNI ? JNI_FLAG_ENABLE_VERBOSE_JNI : 0); - // jniFlags |= (Config.enableVerboseJNIOpenCLResourceTracking ? JNI_FLAG_ENABLE_VERBOSE_JNI_OPENCL_RESOURCE_TRACKING :0); - // jniFlags |= (kernel.getExecutionMode().equals(EXECUTION_MODE.GPU) ? JNI_FLAG_USE_GPU : 0); - // Init the device to check capabilities before emitting the - // code that requires the capabilities. - - // synchronized(Kernel.class){ - jniContextHandle = initJNI(kernel, openCLDevice, jniFlags); // openCLDevice will not be null here - } // end of synchronized! issue 68 - - if (jniContextHandle == 0) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, "initJNI failed to return a valid handle"); - } - - final String extensions = getExtensionsJNI(jniContextHandle); - capabilitiesSet = new HashSet(); - - final StringTokenizer strTok = new StringTokenizer(extensions); - while (strTok.hasMoreTokens()) { - capabilitiesSet.add(strTok.nextToken()); - } - - if (logger.isLoggable(Level.FINE)) { - logger.fine("Capabilities initialized to :" + capabilitiesSet.toString()); - } - - if (entryPoint.requiresDoublePragma() && !hasFP64Support()) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, "FP64 required but not supported"); - } - - if (entryPoint.requiresByteAddressableStorePragma() && !hasByteAddressableStoreSupport()) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, - "Byte addressable stores required but not supported"); - } - - final boolean all32AtomicsAvailable = hasGlobalInt32BaseAtomicsSupport() - && hasGlobalInt32ExtendedAtomicsSupport() && hasLocalInt32BaseAtomicsSupport() - && hasLocalInt32ExtendedAtomicsSupport(); - - if (entryPoint.requiresAtomic32Pragma() && !all32AtomicsAvailable) { - - return warnFallBackAndExecute(_entrypointName, _range, _passes, "32 bit Atomics required but not supported"); - } - - String openCL = null; - try { - openCL = KernelWriter.writeToString(entryPoint); - } catch (final CodeGenException codeGenException) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, codeGenException); - } - - if (Config.enableShowGeneratedOpenCL) { - System.out.println(openCL); - } - - if (logger.isLoggable(Level.INFO)) { - logger.info(openCL); - } - - // Send the string to OpenCL to compile it - if (buildProgramJNI(jniContextHandle, openCL) == 0) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, "OpenCL compile failed"); - } - - args = new KernelArg[entryPoint.getReferencedFields().size()]; - int i = 0; - - for (final Field field : entryPoint.getReferencedFields()) { - try { - field.setAccessible(true); - args[i] = new KernelArg(); - args[i].setName(field.getName()); - args[i].setField(field); - if ((field.getModifiers() & Modifier.STATIC) == Modifier.STATIC) { - args[i].setType(args[i].getType() | ARG_STATIC); - } - - final Class type = field.getType(); - if (type.isArray()) { - - if (field.getAnnotation(Local.class) != null || args[i].getName().endsWith(Kernel.LOCAL_SUFFIX)) { - args[i].setType(args[i].getType() | ARG_LOCAL); - } else if ((field.getAnnotation(Constant.class) != null) - || args[i].getName().endsWith(Kernel.CONSTANT_SUFFIX)) { - args[i].setType(args[i].getType() | ARG_CONSTANT); - } else { - args[i].setType(args[i].getType() | ARG_GLOBAL); - } - if (isExplicit()) { - args[i].setType(args[i].getType() | ARG_EXPLICIT); - } - // for now, treat all write arrays as read-write, see bugzilla issue 4859 - // we might come up with a better solution later - args[i].setType(args[i].getType() - | (entryPoint.getArrayFieldAssignments().contains(field.getName()) ? (ARG_WRITE | ARG_READ) : 0)); - args[i].setType(args[i].getType() - | (entryPoint.getArrayFieldAccesses().contains(field.getName()) ? ARG_READ : 0)); - // args[i].type |= ARG_GLOBAL; - - - if (type.getName().startsWith("[L")) { - args[i].setType(args[i].getType() - | (ARG_OBJ_ARRAY_STRUCT | - ARG_WRITE | - ARG_READ | - ARG_APARAPI_BUFFER)); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("tagging " + args[i].getName() + " as (ARG_OBJ_ARRAY_STRUCT | ARG_WRITE | ARG_READ)"); - } - } else if (type.getName().startsWith("[[")) { - - try { - setMultiArrayType(args[i], type); - } catch(AparapiException e) { - return warnFallBackAndExecute(_entrypointName, _range, _passes, "failed to set kernel arguement " + args[i].getName() + ". Aparapi only supports 2D and 3D arrays."); - } - } else { - - args[i].setArray(null); // will get updated in updateKernelArrayRefs - args[i].setType(args[i].getType() | ARG_ARRAY); - - args[i].setType(args[i].getType() | (type.isAssignableFrom(float[].class) ? ARG_FLOAT : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(int[].class) ? ARG_INT : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(boolean[].class) ? ARG_BOOLEAN : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(byte[].class) ? ARG_BYTE : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(char[].class) ? ARG_CHAR : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(double[].class) ? ARG_DOUBLE : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(long[].class) ? ARG_LONG : 0)); - args[i].setType(args[i].getType() | (type.isAssignableFrom(short[].class) ? ARG_SHORT : 0)); - - // arrays whose length is used will have an int arg holding - // the length as a kernel param - if (entryPoint.getArrayFieldArrayLengthUsed().contains(args[i].getName())) { - args[i].setType(args[i].getType() | ARG_ARRAYLENGTH); - } - - if (type.getName().startsWith("[L")) { - args[i].setType(args[i].getType() | (ARG_OBJ_ARRAY_STRUCT | ARG_WRITE | ARG_READ)); - if (logger.isLoggable(Level.FINE)) { - logger.fine("tagging " + args[i].getName() + " as (ARG_OBJ_ARRAY_STRUCT | ARG_WRITE | ARG_READ)"); - } - } - } - } else if (type.isAssignableFrom(float.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_FLOAT); - } else if (type.isAssignableFrom(int.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_INT); - } else if (type.isAssignableFrom(double.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_DOUBLE); - } else if (type.isAssignableFrom(long.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_LONG); - } else if (type.isAssignableFrom(boolean.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_BOOLEAN); - } else if (type.isAssignableFrom(byte.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_BYTE); - } else if (type.isAssignableFrom(char.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_CHAR); - } else if (type.isAssignableFrom(short.class)) { - args[i].setType(args[i].getType() | ARG_PRIMITIVE); - args[i].setType(args[i].getType() | ARG_SHORT); - } - // System.out.printf("in execute, arg %d %s %08x\n", i,args[i].name,args[i].type ); - } catch (final IllegalArgumentException e) { - e.printStackTrace(); - } - - args[i].setPrimitiveSize(getPrimitiveSize(args[i].getType())); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("arg " + i + ", " + args[i].getName() + ", type=" + Integer.toHexString(args[i].getType()) - + ", primitiveSize=" + args[i].getPrimitiveSize()); - } - - i++; - } - - // at this point, i = the actual used number of arguments - // (private buffers do not get treated as arguments) - - argc = i; - - setArgsJNI(jniContextHandle, args, argc); - - conversionTime = System.currentTimeMillis() - executeStartTime; - - try { - executeOpenCL(_entrypointName, _range, _passes); - } catch (final AparapiException e) { - warnFallBackAndExecute(_entrypointName, _range, _passes, e); - } - } else { - warnFallBackAndExecute(_entrypointName, _range, _passes, "failed to locate entrypoint"); - } - } else { - try { - executeOpenCL(_entrypointName, _range, _passes); - } catch (final AparapiException e) { - warnFallBackAndExecute(_entrypointName, _range, _passes, e); - } - } - } else { - warnFallBackAndExecute(_entrypointName, _range, _passes, - "OpenCL was requested but Device supplied was not an OpenCLDevice"); - } - } else { - executeJava(_range, _passes); - } - - if (Config.enableExecutionModeReporting) { - System.out.println(kernel.getClass().getCanonicalName() + ":" + kernel.getExecutionMode()); - } - - executionTime = System.currentTimeMillis() - executeStartTime; - accumulatedExecutionTime += executionTime; - - return kernel; - } - - - private int getPrimitiveSize(int type) { - if ((type & ARG_FLOAT) != 0) { - return 4; - } else if ((type & ARG_INT) != 0) { - return 4; - } else if ((type & ARG_BYTE) != 0) { - return 1; - } else if ((type & ARG_CHAR) != 0) { - return 2; - } else if ((type & ARG_BOOLEAN) != 0) { - return 1; - } else if ((type & ARG_SHORT) != 0) { - return 2; - } else if ((type & ARG_LONG) != 0) { - return 8; - } else if ((type & ARG_DOUBLE) != 0) { - return 8; - } - return 0; - } - - private void setMultiArrayType(KernelArg arg, Class type) throws AparapiException { - arg.setType(arg.getType() | (ARG_WRITE | ARG_READ | ARG_APARAPI_BUFFER)); - int numDims = 0; - while(type.getName().startsWith("[[[[")) { - throw new AparapiException("Aparapi only supports 2D and 3D arrays."); - } - arg.setType(arg.getType() | ARG_ARRAYLENGTH); - while(type.getName().charAt(numDims) == '[') { - numDims++; - } - Object buffer = new Object(); - try { - buffer = arg.getField().get(kernel); - } catch(IllegalAccessException e) { - e.printStackTrace(); - } - arg.setJavaBuffer(buffer); - arg.setNumDims(numDims); - Object subBuffer = buffer; - int[] dims = new int[numDims]; - for(int i = 0; i < numDims-1; i++) { - dims[i] = Array.getLength(subBuffer); - subBuffer = Array.get(subBuffer, 0); - } - dims[numDims-1] = Array.getLength(subBuffer); - arg.setDims(dims); - - if (subBuffer.getClass().isAssignableFrom(float[].class)) { - arg.setType(arg.getType() | ARG_FLOAT); - } - if (subBuffer.getClass().isAssignableFrom(int[].class)) { - arg.setType(arg.getType() | ARG_INT); - } - if (subBuffer.getClass().isAssignableFrom(boolean[].class)) { - arg.setType(arg.getType() | ARG_BOOLEAN); - } - if (subBuffer.getClass().isAssignableFrom(byte[].class)) { - arg.setType(arg.getType() | ARG_BYTE); - } - if (subBuffer.getClass().isAssignableFrom(char[].class)) { - arg.setType(arg.getType() | ARG_CHAR); - } - if (subBuffer.getClass().isAssignableFrom(double[].class)) { - arg.setType(arg.getType() | ARG_DOUBLE); - } - if (subBuffer.getClass().isAssignableFrom(long[].class)) { - arg.setType(arg.getType() | ARG_LONG); - } - if (subBuffer.getClass().isAssignableFrom(short[].class)) { - arg.setType(arg.getType() | ARG_SHORT); - } - int primitiveSize = getPrimitiveSize(arg.getType()); - int totalElements = 1; - for(int i = 0; i < numDims; i++) { - totalElements *= dims[i]; - } - arg.setSizeInBytes(totalElements * primitiveSize); - } - - private final Set puts = new HashSet(); - - /** - * Enqueue a request to return this array from the GPU. This method blocks until the array is available. - *
      - * Note that Kernel.put(type []) calls will delegate to this call. - *
      - * Package public - * - * @param array - * It is assumed that this parameter is indeed an array (of int, float, short etc). - * - * @see Kernel#get(int[] arr) - * @see Kernel#get(float[] arr) - * @see Kernel#get(double[] arr) - * @see Kernel#get(long[] arr) - * @see Kernel#get(char[] arr) - * @see Kernel#get(boolean[] arr) - */ - public void get(Object array) { - if (explicit - && ((kernel.getExecutionMode() == Kernel.EXECUTION_MODE.GPU) || (kernel.getExecutionMode() == Kernel.EXECUTION_MODE.CPU))) { - // Only makes sense when we are using OpenCL - getJNI(jniContextHandle, array); - } - } - - public List getProfileInfo() { - if (((kernel.getExecutionMode() == Kernel.EXECUTION_MODE.GPU) || (kernel.getExecutionMode() == Kernel.EXECUTION_MODE.CPU))) { - // Only makes sense when we are using OpenCL - return (getProfileInfoJNI(jniContextHandle)); - } else { - return (null); - } - } - - /** - * Tag this array so that it is explicitly enqueued before the kernel is executed.
      - * Note that Kernel.put(type []) calls will delegate to this call.
      - * Package public - * - * @param array - * It is assumed that this parameter is indeed an array (of int, float, short etc). - * @see Kernel#put(int[] arr) - * @see Kernel#put(float[] arr) - * @see Kernel#put(double[] arr) - * @see Kernel#put(long[] arr) - * @see Kernel#put(char[] arr) - * @see Kernel#put(boolean[] arr) - */ - - public void put(Object array) { - if (explicit - && ((kernel.getExecutionMode() == Kernel.EXECUTION_MODE.GPU) || (kernel.getExecutionMode() == Kernel.EXECUTION_MODE.CPU))) { - // Only makes sense when we are using OpenCL - puts.add(array); - } - } - - private boolean explicit = false; - - public void setExplicit(boolean _explicit) { - explicit = _explicit; - } - - public boolean isExplicit() { - return (explicit); - } - - /** - * Determine the time taken to convert bytecode to OpenCL for first Kernel.execute(range) call. - * - * @return The time spent preparing the kernel for execution using GPU - * - */ - public long getConversionTime() { - return conversionTime; - } - - /** - * Determine the execution time of the previous Kernel.execute(range) call. - * - * @return The time spent executing the kernel (ms) - * - */ - public long getExecutionTime() { - return executionTime; - } - - /** - * Determine the accumulated execution time of all previous Kernel.execute(range) calls. - * - * @return The accumulated time spent executing this kernel (ms) - * - */ - public long getAccumulatedExecutionTime() { - return accumulatedExecutionTime; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/ClassModel.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/ClassModel.java deleted file mode 100644 index e1b269fa..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/ClassModel.java +++ /dev/null @@ -1,2734 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.model; - -import com.amd.aparapi.*; -import com.amd.aparapi.internal.annotation.*; -import com.amd.aparapi.internal.exception.*; -import com.amd.aparapi.internal.instruction.InstructionSet.*; -import com.amd.aparapi.internal.model.ClassModel.AttributePool.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.*; -import com.amd.aparapi.internal.reader.*; - -import java.io.*; -import java.lang.reflect.*; -import java.util.*; -import java.util.logging.*; - -/** - * Class represents a ClassFile (MyClass.class). - * - * A ClassModel is constructed from an instance of a java.lang.Class. - * - * If the java class mode changes we may need to modify this to accommodate. - * - * @see Java 5 Class File Format -+ * @see Java 7 Class File Format - * - * @author gfrost - * - */ -public class ClassModel{ - - public interface LocalVariableInfo{ - - int getStart(); - - boolean isArray(); - - int getEnd(); - - String getVariableName(); - - String getVariableDescriptor(); - - int getVariableIndex(); - - int getLength(); - - } - - public interface LocalVariableTableEntry extends Iterable{ - LocalVariableInfo getVariable(int _pc, int _index); - - } - - public static final char SIGC_VOID = 'V'; - - public static final char SIGC_BOOLEAN = 'Z'; - - public static final char SIGC_BYTE = 'B'; - - public static final char SIGC_CHAR = 'C'; - - public static final char SIGC_SHORT = 'S'; - - public static final char SIGC_INT = 'I'; - - public static final char SIGC_LONG = 'J'; - - public static final char SIGC_FLOAT = 'F'; - - public static final char SIGC_DOUBLE = 'D'; - - public static final char SIGC_ARRAY = '['; - - public static final char SIGC_CLASS = 'L'; - - public static final char SIGC_START_METHOD = '('; - - public static final char SIGC_END_CLASS = ';'; - - public static final char SIGC_END_METHOD = ')'; - - public static final char SIGC_PACKAGE = '/'; - - private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - private ClassModel superClazz = null; - - private HashSet noClMethods = null; - - private HashMap privateMemoryFields = null; - - - /** - * Create a ClassModel representing a given Class. - * - * The class's classfile must be available from the class's classloader via getClassLoader().getResourceAsStream(name)). - * For dynamic languages creating classes on the fly we may need another approach. - * - * @param _class The class we will extract the model from - * @throws ClassParseException - */ - - public ClassModel(Class _class) throws ClassParseException { - - parse(_class); - - final Class mySuper = _class.getSuperclass(); - // Find better way to do this check - // The java.lang.Object test is for unit test framework to succeed - should - // not occur in normal use - if ((mySuper != null) && (!mySuper.getName().equals(Kernel.class.getName())) - && (!mySuper.getName().equals("java.lang.Object"))) { - superClazz = new ClassModel(mySuper); - } - } - - ClassModel(InputStream _inputStream) throws ClassParseException { - - parse(_inputStream); - - } - - ClassModel(Class _clazz, byte[] _bytes) throws ClassParseException { - clazz = _clazz; - parse(new ByteArrayInputStream(_bytes)); - } - - /** - * Determine if this is the superclass of some other named class. - * - * @param otherClassName The name of the class to compare against - * @return true if 'this' a superclass of another named class - */ - public boolean isSuperClass(String otherClassName) { - if (getClassWeAreModelling().getName().equals(otherClassName)) { - return true; - } else if (superClazz != null) { - return superClazz.isSuperClass(otherClassName); - } else { - return false; - } - } - - /** - * Determine if this is the superclass of some other class. - * - * @param other The class to compare against - * @return true if 'this' a superclass of another class - */ - public boolean isSuperClass(Class other) { - Class s = other.getSuperclass(); - while (s != null) { - if ((getClassWeAreModelling() == s) || (getClassWeAreModelling().getName().equals(s.getName()))) { - return true; - } - s = s.getSuperclass(); - } - return false; - } - - /** - * Getter for superClazz - * - * @return the superClazz ClassModel - */ - public ClassModel getSuperClazz() { - return superClazz; - } - - @DocMe public void replaceSuperClazz(ClassModel c) { - if (superClazz != null) { - assert c.isSuperClass(getClassWeAreModelling()) == true : "not my super"; - if (superClazz.getClassWeAreModelling().getName().equals(c.getClassWeAreModelling().getName())) { - superClazz = c; - } else { - superClazz.replaceSuperClazz(c); - } - } - } - - /** - * Convert a given JNI character type (say 'I') to its type name ('int'). - * - * @param _typeChar - * @return either a mapped type name or null if no mapping exists. - */ - public static String typeName(char _typeChar) { - String returnName = null; - switch (_typeChar) { - case SIGC_VOID: - returnName = "void"; - break; - case SIGC_INT: - returnName = "int"; - break; - case SIGC_DOUBLE: - returnName = "double"; - break; - case SIGC_FLOAT: - returnName = "float"; - break; - case SIGC_SHORT: - returnName = "short"; - break; - case SIGC_CHAR: - returnName = "char"; - break; - case SIGC_BYTE: - returnName = "byte"; - break; - case SIGC_LONG: - returnName = "long"; - break; - case SIGC_BOOLEAN: - returnName = "boolean"; - break; - } - - return (returnName); - } - - /** - * If a field does not satisfy the private memory conditions, null, otherwise the size of private memory required. - */ - public Integer getPrivateMemorySize(String fieldName) throws ClassParseException { - if (privateMemoryFields == null) { - privateMemoryFields = new HashMap(); - HashMap privateMemoryFields = new HashMap(); - for (Field field : getClassWeAreModelling().getDeclaredFields()) { - Kernel.PrivateMemorySpace privateMemorySpace = field.getAnnotation(Kernel.PrivateMemorySpace.class); - if (privateMemorySpace != null) { - privateMemoryFields.put(field, privateMemorySpace); - } - } - for (Field field : getClassWeAreModelling().getFields()) { - Kernel.PrivateMemorySpace privateMemorySpace = field.getAnnotation(Kernel.PrivateMemorySpace.class); - if (privateMemorySpace != null) { - privateMemoryFields.put(field, privateMemorySpace); - } - } - for (Map.Entry entry : privateMemoryFields.entrySet()) { - this.privateMemoryFields.put(entry.getKey().getName(), entry.getValue()); - } - } - Kernel.PrivateMemorySpace annotation = privateMemoryFields.get(fieldName); - if (annotation != null) { - return annotation.value(); - } - return getPrivateMemorySizeFromFieldName(fieldName); - } - - public static Integer getPrivateMemorySizeFromField(Field field) { - Kernel.PrivateMemorySpace privateMemorySpace = field.getAnnotation(Kernel.PrivateMemorySpace.class); - if (privateMemorySpace != null) { - return privateMemorySpace.value(); - } else { - return null; - } - } - - public static Integer getPrivateMemorySizeFromFieldName(String fieldName) throws ClassParseException { - if (fieldName.contains(Kernel.PRIVATE_SUFFIX)) { - int lastDollar = fieldName.lastIndexOf('$'); - String sizeText = fieldName.substring(lastDollar + 1); - try { - return new Integer(Integer.parseInt(sizeText)); - } catch (NumberFormatException e) { - throw new ClassParseException(ClassParseException.TYPE.IMPROPERPRIVATENAMEMANGLING, fieldName); - } - } - return null; - } - - public Set getNoCLMethods() { - if (this.noClMethods == null) { - noClMethods = new HashSet(); - HashSet methods = new HashSet(); - for (Method method : getClassWeAreModelling().getDeclaredMethods()) { - if (method.getAnnotation(Kernel.NoCL.class) != null) { - methods.add(method); - } - } - for (Method method : getClassWeAreModelling().getMethods()) { - if (method.getAnnotation(Kernel.NoCL.class) != null) { - methods.add(method); - } - } - for (Method method : methods) { - noClMethods.add(method.getName()); - } - - } - return noClMethods; - } - - public static String convert(String _string) { - return (convert(_string, "", false)); - } - - public static String convert(String _string, String _insert) { - return (convert(_string, _insert, false)); - } - - public static String convert(String _string, String _insert, boolean _showFullClassName) { - Stack stringStack = new Stack(); - Stack methodStack = null; - final int length = _string.length(); - final char[] chars = _string.toCharArray(); - int i = 0; - boolean inArray = false; - boolean inMethod = false; - boolean inArgs = false; - int args = 0; - - while (i < length) { - switch (chars[i]) { - case SIGC_CLASS: { - final StringBuilder classNameBuffer = new StringBuilder(); - i++; - while ((i < length) && (chars[i] != SIGC_END_CLASS)) { - if (chars[i] == SIGC_PACKAGE) { - classNameBuffer.append('.'); - } else { - classNameBuffer.append(chars[i]); - } - i++; - } - i++; // step over SIGC_ENDCLASS - String className = classNameBuffer.toString(); - if (_showFullClassName) { - if (className.startsWith("java.lang")) { - className = className.substring("java.lang.".length()); - } - } else { - final int lastDot = className.lastIndexOf('.'); - if (lastDot > 0) { - className = className.substring(lastDot + 1); - } - } - if (inArray) { - // swap the stack items - final String popped = stringStack.pop(); - if (inArgs && (args > 0)) { - stringStack.push(", "); - } - stringStack.push(className); - stringStack.push(popped); - inArray = false; - } else { - if (inArgs && (args > 0)) { - stringStack.push(", "); - } - stringStack.push(className); - } - args++; - } - break; - case SIGC_ARRAY: { - final StringBuilder arrayDims = new StringBuilder(); - while ((i < length) && (chars[i] == SIGC_ARRAY)) { - arrayDims.append("[]"); - i++; - } - stringStack.push(arrayDims.toString()); - inArray = true; - } - break; - case SIGC_VOID: - case SIGC_INT: - case SIGC_DOUBLE: - case SIGC_FLOAT: - case SIGC_SHORT: - case SIGC_CHAR: - case SIGC_BYTE: - case SIGC_LONG: - case SIGC_BOOLEAN: { - if (inArray) { - // swap the stack items - final String popped = stringStack.pop(); - if (inArgs && (args > 0)) { - stringStack.push(", "); - } - stringStack.push(typeName(chars[i])); - stringStack.push(popped); - inArray = false; - } else { - if (inArgs && (args > 0)) { - stringStack.push(", "); - } - stringStack.push(typeName(chars[i])); - } - i++; // step over this - } - break; - case SIGC_START_METHOD: { - stringStack.push("("); - i++; // step over this - inArgs = true; - args = 0; - } - break; - case SIGC_END_METHOD: { - inMethod = true; - inArgs = false; - stringStack.push(")"); - methodStack = stringStack; - stringStack = new Stack(); - i++; // step over this - } - break; - } - } - - final StringBuilder returnValue = new StringBuilder(); - for (final String s : stringStack) { - returnValue.append(s); - returnValue.append(" "); - - } - - if (inMethod) { - for (final String s : methodStack) { - returnValue.append(s); - returnValue.append(" "); - } - } else { - returnValue.append(_insert); - } - - return (returnValue.toString()); - } - - public static class MethodDescription{ - private final String className; - - private final String methodName; - - private final String type; - - private final String[] args; - - public MethodDescription(String _className, String _methodName, String _type, String[] _args) { - methodName = _methodName; - className = _className; - type = _type; - args = _args; - } - - public String[] getArgs() { - return (args); - } - - public String getType() { - return (type); - } - - public String getClassName() { - return (className); - } - - public String getMethodName() { - return (methodName); - } - } - - public static MethodDescription getMethodDescription(String _string) { - String className = null; - String methodName = null; - String descriptor = null; - MethodDescription methodDescription = null; - - if (_string.startsWith("(")) { - className = "?"; - methodName = "?"; - descriptor = _string; - } else { - final int parenIndex = _string.indexOf("("); - final int dotIndex = _string.indexOf("."); - descriptor = _string.substring(parenIndex); - className = _string.substring(0, dotIndex); - methodName = _string.substring(dotIndex + 1, parenIndex); - } - - Stack stringStack = new Stack(); - Stack methodStack = null; - final int length = descriptor.length(); - final char[] chars = new char[descriptor.length()]; - descriptor.getChars(0, descriptor.length(), chars, 0); - int i = 0; - boolean inArray = false; - boolean inMethod = false; - - while (i < length) { - switch (chars[i]) { - case SIGC_CLASS: { - StringBuilder stringBuffer = null; - if (inArray) { - stringBuffer = new StringBuilder(stringStack.pop()); - } else { - stringBuffer = new StringBuilder(); - } - while ((i < length) && (chars[i] != SIGC_END_CLASS)) { - stringBuffer.append(chars[i]); - i++; - } - stringBuffer.append(chars[i]); - i++; // step over SIGC_ENDCLASS - stringStack.push(stringBuffer.toString()); - inArray = false; - } - break; - case SIGC_ARRAY: { - final StringBuilder stringBuffer = new StringBuilder(); - while ((i < length) && (chars[i] == SIGC_ARRAY)) { - stringBuffer.append(chars[i]); - i++; - } - stringStack.push(stringBuffer.toString()); - inArray = true; - } - break; - case SIGC_VOID: - case SIGC_INT: - case SIGC_DOUBLE: - case SIGC_FLOAT: - case SIGC_SHORT: - case SIGC_CHAR: - case SIGC_BYTE: - case SIGC_LONG: - case SIGC_BOOLEAN: { - StringBuilder stringBuffer = null; - if (inArray) { - stringBuffer = new StringBuilder(stringStack.pop()); - } else { - stringBuffer = new StringBuilder(); - } - stringBuffer.append(chars[i]); - i++; // step over this - stringStack.push(stringBuffer.toString()); - inArray = false; - } - break; - case SIGC_START_METHOD: { - i++; // step over this - } - break; - case SIGC_END_METHOD: { - inMethod = true; - inArray = false; - methodStack = stringStack; - stringStack = new Stack(); - i++; // step over this - } - break; - } - } - - if (inMethod) { - methodDescription = new MethodDescription(className, methodName, stringStack.toArray(new String[0])[0], - methodStack.toArray(new String[0])); - } else { - System.out.println("can't convert to a description"); - } - - return (methodDescription); - } - - private int magic; - - private int minorVersion; - - private int majorVersion; - - private ConstantPool constantPool; - - private int accessFlags; - - private int thisClassConstantPoolIndex; - - private int superClassConstantPoolIndex; - - private final List interfaces = new ArrayList(); - - private final List fields = new ArrayList(); - - private final List methods = new ArrayList(); - - private AttributePool attributePool; - - public enum ConstantPoolType { - EMPTY, //0 - UTF8, //1 - UNICODE, //2 - INTEGER, //3 - FLOAT, //4 - LONG, //5 - DOUBLE, //6 - CLASS, //7 - STRING, //8 - FIELD, //9 - METHOD, //10 - INTERFACEMETHOD, //11 - NAMEANDTYPE, //12 - UNUSED13, - UNUSED14, - METHODHANDLE, //15 - METHODTYPE, //16 - UNUSED17, - INVOKEDYNAMIC//18 - }; - - public enum Access { - PUBLIC(0x00000001), - PRIVATE(0x00000002), - PROTECTED(0x00000004), - STATIC(0x00000008), - FINAL(0x00000010), - ACC_SYNCHRONIZED(0x00000020), - ACC_VOLATILE(0x00000040), - BRIDGE(0x00000040), - TRANSIENT(0x00000080), - VARARGS(0x00000080), - NATIVE(0x00000100), - INTERFACE(0x00000200), - ABSTRACT(0x00000400), - SUPER(0x00000020), - STRICT(0x00000800), - ANNOTATION(0x00002000), - ACC_ENUM(0x00004000); - int bits; - - private Access(int _bits) { - bits = _bits; - } - - public boolean bitIsSet(int _accessFlags) { - return ((bits & _accessFlags) == bits); - } - - public String convert(int _accessFlags) { - final StringBuffer stringBuffer = new StringBuffer(); - for (final Access access : Access.values()) { - if (access.bitIsSet(_accessFlags)) { - stringBuffer.append(" " + access.name().toLowerCase()); - } - } - - return (stringBuffer.toString()); - } - } - - private static enum SignatureParseState { - skipping, - counting, - inclass, - inArray, - done; - }; - - public class ConstantPool implements Iterable{ - - private final List entries = new ArrayList(); - - public abstract class Entry{ - private final ConstantPoolType constantPoolType; - - private final int slot; - - public Entry(ByteReader _byteReader, int _slot, ConstantPoolType _constantPoolType) { - constantPoolType = _constantPoolType; - slot = _slot; - } - - public ConstantPoolType getConstantPoolType() { - return (constantPoolType); - } - - public int getSlot() { - return (slot); - } - - public ClassModel getOwnerClassModel() { - return ClassModel.this; - } - } - - public class ClassEntry extends Entry{ - private final int nameIndex; - - public ClassEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.CLASS); - nameIndex = _byteReader.u2(); - } - - public int getNameIndex() { - return (nameIndex); - } - - public UTF8Entry getNameUTF8Entry() { - return (getUTF8Entry(nameIndex)); - } - } - - public class DoubleEntry extends Entry{ - private final double doubleValue; - - public DoubleEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.DOUBLE); - doubleValue = _byteReader.d8(); - } - - public double getDoubleValue() { - return (doubleValue); - } - } - - public class EmptyEntry extends Entry{ - public EmptyEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.EMPTY); - } - } - - public class FieldEntry extends ReferenceEntry{ - public FieldEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.FIELD); - } - } - - public class FloatEntry extends Entry{ - private final float floatValue; - - public FloatEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.FLOAT); - floatValue = _byteReader.f4(); - } - - public float getFloatValue() { - return (floatValue); - } - } - - public class IntegerEntry extends Entry{ - private final int intValue; - - public IntegerEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.INTEGER); - intValue = _byteReader.u4(); - } - - public int getIntValue() { - return (intValue); - } - } - - public class InterfaceMethodEntry extends MethodReferenceEntry{ - InterfaceMethodEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.INTERFACEMETHOD); - } - } - - public class LongEntry extends Entry{ - private final long longValue; - - public LongEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.LONG); - longValue = _byteReader.u8(); - } - - public long getLongValue() { - return (longValue); - } - } - - public class MethodEntry extends MethodReferenceEntry{ - public MethodEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.METHOD); - } - - @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append(getClassEntry().getNameUTF8Entry().getUTF8()); - sb.append("."); - sb.append(getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - sb.append(getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8()); - return (sb.toString()); - } - } - - public class NameAndTypeEntry extends Entry{ - private final int descriptorIndex; - - private final int nameIndex; - - public NameAndTypeEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.NAMEANDTYPE); - nameIndex = _byteReader.u2(); - descriptorIndex = _byteReader.u2(); - } - - public int getDescriptorIndex() { - return (descriptorIndex); - } - - public UTF8Entry getDescriptorUTF8Entry() { - return (getUTF8Entry(descriptorIndex)); - } - - public int getNameIndex() { - return (nameIndex); - } - - public UTF8Entry getNameUTF8Entry() { - return (getUTF8Entry(nameIndex)); - } - } - - class MethodTypeEntry extends Entry{ - private int descriptorIndex; - - MethodTypeEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.METHODTYPE); - descriptorIndex = _byteReader.u2(); - } - - int getDescriptorIndex() { - return (descriptorIndex); - } - - UTF8Entry getDescriptorUTF8Entry() { - return (ConstantPool.this.getUTF8Entry(descriptorIndex)); - } - - } - - class MethodHandleEntry extends Entry{ - // http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4 - - private int referenceKind; - - private int referenceIndex; - - MethodHandleEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.METHODHANDLE); - referenceKind = _byteReader.u1(); - referenceIndex = _byteReader.u2(); - } - - int getReferenceIndex() { - return (referenceIndex); - } - - int getReferenceKind() { - return (referenceKind); - } - - } - - class InvokeDynamicEntry extends Entry{ - // http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4 - - private int bootstrapMethodAttrIndex; - - private int nameAndTypeIndex; - - InvokeDynamicEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.INVOKEDYNAMIC); - bootstrapMethodAttrIndex = _byteReader.u2(); - nameAndTypeIndex = _byteReader.u2(); - } - - int getBootstrapMethodAttrIndex() { - return (bootstrapMethodAttrIndex); - } - - int getNameAndTypeIndex() { - return (nameAndTypeIndex); - } - - } - - public abstract class MethodReferenceEntry extends ReferenceEntry{ - - public class Arg extends Type{ - Arg(String _signature, int _start, int _pos, int _argc) { - super(_signature.substring(_start, _pos + 1)); - argc = _argc; - } - - private final int argc; - - int getArgc() { - return (argc); - } - } - - private Arg[] args = null; - - private Type returnType = null; - - @Override public int hashCode() { - final NameAndTypeEntry nameAndTypeEntry = getNameAndTypeEntry(); - - return ((((nameAndTypeEntry.getNameIndex() * 31) + nameAndTypeEntry.getDescriptorIndex()) * 31) + getClassIndex()); - } - - @Override public boolean equals(Object _other) { - if ((_other == null) || !(_other instanceof MethodReferenceEntry)) { - return (false); - } else { - final MethodReferenceEntry otherMethodReferenceEntry = (MethodReferenceEntry) _other; - return ((otherMethodReferenceEntry.getNameAndTypeEntry().getNameIndex() == getNameAndTypeEntry().getNameIndex()) - && (otherMethodReferenceEntry.getNameAndTypeEntry().getDescriptorIndex() == getNameAndTypeEntry() - .getDescriptorIndex()) && (otherMethodReferenceEntry.getClassIndex() == getClassIndex())); - } - } - - public MethodReferenceEntry(ByteReader byteReader, int slot, ConstantPoolType constantPoolType) { - super(byteReader, slot, constantPoolType); - - } - - public int getStackProduceCount() { - return (getReturnType().isVoid() ? 0 : 1); - } - - public Type getReturnType() { - if (returnType == null) { - getArgs(); - } - - return (returnType); - } - - public Arg[] getArgs() { - if ((args == null) || (returnType == null)) { - final List argList = new ArrayList(); - final NameAndTypeEntry nameAndTypeEntry = getNameAndTypeEntry(); - - final String signature = nameAndTypeEntry.getDescriptorUTF8Entry().getUTF8();// "([[IF)V" for a method that takes an int[][], float and returns void. - // Sadly we need to parse this, we need the # of arguments for the call - SignatureParseState state = SignatureParseState.skipping; - int start = 0; - - for (int pos = 0; state != SignatureParseState.done; pos++) { - final char ch = signature.charAt(pos); - switch (ch) { - case '(': - state = SignatureParseState.counting; - break; - case ')': - state = SignatureParseState.done; - returnType = new Type(signature.substring(pos + 1)); - break; - case '[': - switch (state) { - case counting: - state = SignatureParseState.inArray; - start = pos; - break; - - } - // we don't care about arrays - break; - case 'L': - // beginning of Ljava/lang/String; or something - - switch (state) { - case counting: - start = pos; - // fallthrough intended!! - case inArray: - state = SignatureParseState.inclass; - break; - } - break; - case ';': - // note we will only be in 'inclass' if we were previously counting, so this is safe - switch (state) { - case inclass: - argList.add(new Arg(signature, start, pos, argList.size())); - state = SignatureParseState.counting; - break; - } - break; - - default: - // we have IJBZDF so inc counter if we are still counting - switch (state) { - case counting: - start = pos; - // fallthrough intended!! - case inArray: - argList.add(new Arg(signature, start, pos, argList.size())); - break; - - } - break; - } - } - // System.out.println("method "+name+" has signature of "+signature+" which has "+count+" args"); - - args = argList.toArray(new Arg[0]); - } - - return (args); - } - - public int getStackConsumeCount() { - return (getArgs().length); - } - } - - public abstract class ReferenceEntry extends Entry{ - protected int referenceClassIndex; - - protected int nameAndTypeIndex; - - protected int argCount = -1; - - public ReferenceEntry(ByteReader _byteReader, int _slot, ConstantPoolType _constantPoolType) { - super(_byteReader, _slot, _constantPoolType); - referenceClassIndex = _byteReader.u2(); - nameAndTypeIndex = _byteReader.u2(); - } - - public ClassEntry getClassEntry() { - return (ConstantPool.this.getClassEntry(referenceClassIndex)); - } - - public int getClassIndex() { - return (referenceClassIndex); - } - - public NameAndTypeEntry getNameAndTypeEntry() { - return (ConstantPool.this.getNameAndTypeEntry(nameAndTypeIndex)); - } - - public int getNameAndTypeIndex() { - return (nameAndTypeIndex); - } - - public boolean same(Entry _entry) { - if (_entry instanceof ReferenceEntry) { - final ReferenceEntry entry = (ReferenceEntry) _entry; - return ((referenceClassIndex == entry.referenceClassIndex) && (nameAndTypeIndex == entry.nameAndTypeIndex)); - } - - return (false); - } - - public class Type{ - private int arrayDimensions = 0; - - public Type(String _type) { - type = _type; - - while (type.charAt(arrayDimensions) == '[') { - arrayDimensions++; - } - type = type.substring(arrayDimensions); - } - - public String getType() { - return (type); - } - - public boolean isVoid() { - return (type.equals("V")); - } - - private String type; - - public boolean isArray() { - return (arrayDimensions > 0); - } - - public int getArrayDimensions() { - return (arrayDimensions); - } - } - } - - public class StringEntry extends Entry{ - private final int utf8Index; - - public StringEntry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.STRING); - utf8Index = _byteReader.u2(); - } - - public int getUTF8Index() { - return (utf8Index); - } - - public UTF8Entry getStringUTF8Entry() { - return (getUTF8Entry(utf8Index)); - } - } - - public class UTF8Entry extends Entry{ - private final String UTF8; - - public UTF8Entry(ByteReader _byteReader, int _slot) { - super(_byteReader, _slot, ConstantPoolType.UTF8); - UTF8 = _byteReader.utf8(); - } - - public String getUTF8() { - return (UTF8); - } - } - - public ConstantPool(ByteReader _byteReader) { - final int size = _byteReader.u2(); - add(new EmptyEntry(_byteReader, 0)); // slot 0 - - for (int i = 1; i < size; i++) { - final ConstantPoolType constantPoolType = ConstantPoolType.values()[_byteReader.u1()]; - - switch (constantPoolType) { - case UTF8: - add(new UTF8Entry(_byteReader, i)); - break; - case INTEGER: - add(new IntegerEntry(_byteReader, i)); - break; - case FLOAT: - add(new FloatEntry(_byteReader, i)); - break; - case LONG: - add(new LongEntry(_byteReader, i)); - i++;// Longs take two slots in the ConstantPool - add(new EmptyEntry(_byteReader, i)); - break; - case DOUBLE: - add(new DoubleEntry(_byteReader, i)); - i++; // Doubles take two slots in the ConstantPool - add(new EmptyEntry(_byteReader, i)); - break; - case CLASS: - add(new ClassEntry(_byteReader, i)); - break; - case STRING: - add(new StringEntry(_byteReader, i)); - break; - case FIELD: - add(new FieldEntry(_byteReader, i)); - break; - case METHOD: - add(new MethodEntry(_byteReader, i)); - break; - case INTERFACEMETHOD: - add(new InterfaceMethodEntry(_byteReader, i)); - break; - case NAMEANDTYPE: - add(new NameAndTypeEntry(_byteReader, i)); - break; - case METHODHANDLE: - add(new MethodHandleEntry(_byteReader, i)); - break; - case METHODTYPE: - add(new MethodTypeEntry(_byteReader, i)); - break; - case INVOKEDYNAMIC: - add(new InvokeDynamicEntry(_byteReader, i)); - break; - default: - System.out.printf("slot %04x unexpected Constant constantPoolType = %s\n", i, constantPoolType); - } - } - } - - public ClassEntry getClassEntry(int _index) { - try { - return ((ClassEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public DoubleEntry getDoubleEntry(int _index) { - try { - return ((DoubleEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public FieldEntry getFieldEntry(int _index) { - try { - return ((FieldEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - FieldEntry getFieldEntry(String _name) { - for (Entry entry : entries) { - if (entry instanceof FieldEntry) { - String fieldName = ((FieldEntry) entry).getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - if (_name.equals(fieldName)) { - return (FieldEntry) entry; - } - } - } - return null; - } - - public FloatEntry getFloatEntry(int _index) { - try { - return ((FloatEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public IntegerEntry getIntegerEntry(int _index) { - try { - return ((IntegerEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public InterfaceMethodEntry getInterfaceMethodEntry(int _index) { - try { - return ((InterfaceMethodEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public LongEntry getLongEntry(int _index) { - try { - return ((LongEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public MethodEntry getMethodEntry(int _index) { - try { - return ((MethodEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public NameAndTypeEntry getNameAndTypeEntry(int _index) { - try { - return ((NameAndTypeEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public StringEntry getStringEntry(int _index) { - try { - return ((StringEntry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public UTF8Entry getUTF8Entry(int _index) { - try { - return ((UTF8Entry) entries.get(_index)); - } catch (final ClassCastException e) { - return (null); - } - } - - public void add(Entry _entry) { - entries.add(_entry); - - } - - @Override public Iterator iterator() { - return (entries.iterator()); - } - - public Entry get(int _index) { - return (entries.get(_index)); - } - - public String getDescription(ConstantPool.Entry _entry) { - final StringBuilder sb = new StringBuilder(); - if (_entry instanceof ConstantPool.EmptyEntry) { - ; - } else if (_entry instanceof ConstantPool.DoubleEntry) { - final ConstantPool.DoubleEntry doubleEntry = (ConstantPool.DoubleEntry) _entry; - sb.append(doubleEntry.getDoubleValue()); - } else if (_entry instanceof ConstantPool.FloatEntry) { - final ConstantPool.FloatEntry floatEntry = (ConstantPool.FloatEntry) _entry; - sb.append(floatEntry.getFloatValue()); - } else if (_entry instanceof ConstantPool.IntegerEntry) { - final ConstantPool.IntegerEntry integerEntry = (ConstantPool.IntegerEntry) _entry; - sb.append(integerEntry.getIntValue()); - } else if (_entry instanceof ConstantPool.LongEntry) { - final ConstantPool.LongEntry longEntry = (ConstantPool.LongEntry) _entry; - sb.append(longEntry.getLongValue()); - } else if (_entry instanceof ConstantPool.UTF8Entry) { - final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) _entry; - sb.append(utf8Entry.getUTF8()); - } else if (_entry instanceof ConstantPool.StringEntry) { - final ConstantPool.StringEntry stringEntry = (ConstantPool.StringEntry) _entry; - final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(stringEntry.getUTF8Index()); - sb.append(utf8Entry.getUTF8()); - } else if (_entry instanceof ConstantPool.ClassEntry) { - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) _entry; - final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry.getNameIndex()); - sb.append(utf8Entry.getUTF8()); - } else if (_entry instanceof ConstantPool.NameAndTypeEntry) { - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) _entry; - final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getNameIndex()); - final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getDescriptorIndex()); - sb.append(utf8NameEntry.getUTF8() + "." + utf8DescriptorEntry.getUTF8()); - } else if (_entry instanceof ConstantPool.MethodEntry) { - final ConstantPool.MethodEntry methodEntry = (ConstantPool.MethodEntry) _entry; - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) get(methodEntry.getClassIndex()); - final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry.getNameIndex()); - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) get(methodEntry - .getNameAndTypeIndex()); - final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getNameIndex()); - final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getDescriptorIndex()); - sb.append(convert(utf8DescriptorEntry.getUTF8(), utf8Entry.getUTF8() + "." + utf8NameEntry.getUTF8())); - } else if (_entry instanceof ConstantPool.InterfaceMethodEntry) { - final ConstantPool.InterfaceMethodEntry interfaceMethodEntry = (ConstantPool.InterfaceMethodEntry) _entry; - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) get(interfaceMethodEntry.getClassIndex()); - final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry.getNameIndex()); - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) get(interfaceMethodEntry - .getNameAndTypeIndex()); - final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getNameIndex()); - final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getDescriptorIndex()); - sb.append(convert(utf8DescriptorEntry.getUTF8(), utf8Entry.getUTF8() + "." + utf8NameEntry.getUTF8())); - } else if (_entry instanceof ConstantPool.FieldEntry) { - final ConstantPool.FieldEntry fieldEntry = (ConstantPool.FieldEntry) _entry; - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) get(fieldEntry.getClassIndex()); - final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry.getNameIndex()); - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) get(fieldEntry - .getNameAndTypeIndex()); - final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getNameIndex()); - final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry.getDescriptorIndex()); - sb.append(convert(utf8DescriptorEntry.getUTF8(), utf8Entry.getUTF8() + "." + utf8NameEntry.getUTF8())); - } - - return (sb.toString()); - } - - public int[] getConstantPoolReferences(ConstantPool.Entry _entry) { - int[] references = new int[0]; - if (_entry instanceof ConstantPool.StringEntry) { - final ConstantPool.StringEntry stringEntry = (ConstantPool.StringEntry) _entry; - references = new int[] { - stringEntry.getUTF8Index() - }; - } else if (_entry instanceof ConstantPool.ClassEntry) { - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) _entry; - references = new int[] { - classEntry.getNameIndex() - }; - } else if (_entry instanceof ConstantPool.NameAndTypeEntry) { - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) _entry; - references = new int[] { - nameAndTypeEntry.getNameIndex(), - nameAndTypeEntry.getDescriptorIndex() - }; - } else if (_entry instanceof ConstantPool.MethodEntry) { - final ConstantPool.MethodEntry methodEntry = (ConstantPool.MethodEntry) _entry; - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) get(methodEntry.getClassIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry - .getNameIndex()); - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) get(methodEntry - .getNameAndTypeIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry - .getNameIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry - .getDescriptorIndex()); - references = new int[] { - methodEntry.getClassIndex(), - classEntry.getNameIndex(), - nameAndTypeEntry.getNameIndex(), - nameAndTypeEntry.getDescriptorIndex() - }; - } else if (_entry instanceof ConstantPool.InterfaceMethodEntry) { - final ConstantPool.InterfaceMethodEntry interfaceMethodEntry = (ConstantPool.InterfaceMethodEntry) _entry; - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) get(interfaceMethodEntry.getClassIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry - .getNameIndex()); - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) get(interfaceMethodEntry - .getNameAndTypeIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry - .getNameIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry - .getDescriptorIndex()); - references = new int[] { - interfaceMethodEntry.getClassIndex(), - classEntry.getNameIndex(), - nameAndTypeEntry.getNameIndex(), - nameAndTypeEntry.getDescriptorIndex() - }; - } else if (_entry instanceof ConstantPool.FieldEntry) { - final ConstantPool.FieldEntry fieldEntry = (ConstantPool.FieldEntry) _entry; - final ConstantPool.ClassEntry classEntry = (ConstantPool.ClassEntry) get(fieldEntry.getClassIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8Entry = (ConstantPool.UTF8Entry) get(classEntry - .getNameIndex()); - final ConstantPool.NameAndTypeEntry nameAndTypeEntry = (ConstantPool.NameAndTypeEntry) get(fieldEntry - .getNameAndTypeIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8NameEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry - .getNameIndex()); - @SuppressWarnings("unused") final ConstantPool.UTF8Entry utf8DescriptorEntry = (ConstantPool.UTF8Entry) get(nameAndTypeEntry - .getDescriptorIndex()); - references = new int[] { - fieldEntry.getClassIndex(), - classEntry.getNameIndex(), - nameAndTypeEntry.getNameIndex(), - nameAndTypeEntry.getDescriptorIndex() - }; - } - - return (references); - } - - public String getType(ConstantPool.Entry _entry) { - final StringBuffer sb = new StringBuffer(); - if (_entry instanceof ConstantPool.EmptyEntry) { - sb.append("empty"); - } else if (_entry instanceof ConstantPool.DoubleEntry) { - sb.append("double"); - } else if (_entry instanceof ConstantPool.FloatEntry) { - sb.append("float"); - } else if (_entry instanceof ConstantPool.IntegerEntry) { - sb.append("int"); - } else if (_entry instanceof ConstantPool.LongEntry) { - sb.append("long"); - } else if (_entry instanceof ConstantPool.UTF8Entry) { - sb.append("utf8"); - } else if (_entry instanceof ConstantPool.StringEntry) { - sb.append("string"); - } else if (_entry instanceof ConstantPool.ClassEntry) { - sb.append("class"); - } else if (_entry instanceof ConstantPool.NameAndTypeEntry) { - sb.append("name/type"); - } else if (_entry instanceof ConstantPool.MethodEntry) { - sb.append("method"); - } else if (_entry instanceof ConstantPool.InterfaceMethodEntry) { - sb.append("interface method"); - } else if (_entry instanceof ConstantPool.FieldEntry) { - sb.append("field"); - } - - return (sb.toString()); - } - - public Object getConstantEntry(int _constantPoolIndex) { - final Entry entry = get(_constantPoolIndex); - Object object = null; - switch (entry.getConstantPoolType()) { - case FLOAT: - object = ((FloatEntry) entry).getFloatValue(); - break; - case DOUBLE: - object = ((DoubleEntry) entry).getDoubleValue(); - break; - case INTEGER: - object = ((IntegerEntry) entry).getIntValue(); - break; - case LONG: - object = ((LongEntry) entry).getLongValue(); - break; - case STRING: - object = ((StringEntry) entry).getStringUTF8Entry().getUTF8(); - break; - } - - return (object); - } - } - - public class AttributePool{ - private final List attributePoolEntries = new ArrayList(); - - public class CodeEntry extends AttributePoolEntry{ - - public class ExceptionPoolEntry{ - private final int exceptionClassIndex; - - private final int end; - - private final int handler; - - private final int start; - - public ExceptionPoolEntry(ByteReader _byteReader) { - start = _byteReader.u2(); - end = _byteReader.u2(); - handler = _byteReader.u2(); - exceptionClassIndex = _byteReader.u2(); - } - - public ConstantPool.ClassEntry getClassEntry() { - return (constantPool.getClassEntry(exceptionClassIndex)); - } - - public int getClassIndex() { - return (exceptionClassIndex); - } - - public int getEnd() { - return (end); - } - - public int getHandler() { - return (handler); - } - - public int getStart() { - return (start); - } - } - - private final List exceptionPoolEntries = new ArrayList(); - - private final AttributePool codeEntryAttributePool; - - private final byte[] code; - - private final int maxLocals; - - private final int maxStack; - - public CodeEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - maxStack = _byteReader.u2(); - maxLocals = _byteReader.u2(); - final int codeLength = _byteReader.u4(); - code = _byteReader.bytes(codeLength); - final int exceptionTableLength = _byteReader.u2(); - - for (int i = 0; i < exceptionTableLength; i++) { - exceptionPoolEntries.add(new ExceptionPoolEntry(_byteReader)); - } - - codeEntryAttributePool = new AttributePool(_byteReader, getName()); - } - - @Override public AttributePool getAttributePool() { - return (codeEntryAttributePool); - } - - public LineNumberTableEntry getLineNumberTableEntry() { - return (codeEntryAttributePool.getLineNumberTableEntry()); - } - - public int getMaxLocals() { - return (maxLocals); - } - - public int getMaxStack() { - return (maxStack); - } - - public byte[] getCode() { - return code; - } - - public List getExceptionPoolEntries() { - return exceptionPoolEntries; - } - } - - public class ConstantValueEntry extends AttributePoolEntry{ - private final int index; - - public ConstantValueEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - index = _byteReader.u2(); - } - - public int getIndex() { - return (index); - } - - } - - public class DeprecatedEntry extends AttributePoolEntry{ - public DeprecatedEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - } - } - - public abstract class AttributePoolEntry{ - protected int length; - - protected int nameIndex; - - public AttributePoolEntry(ByteReader _byteReader, int _nameIndex, int _length) { - nameIndex = _nameIndex; - length = _length; - } - - public AttributePool getAttributePool() { - return (null); - } - - public int getLength() { - return (length); - } - - public String getName() { - return (constantPool.getUTF8Entry(nameIndex).getUTF8()); - } - - public int getNameIndex() { - return (nameIndex); - } - } - - public abstract class PoolEntry extends AttributePoolEntry implements Iterable{ - private final List pool = new ArrayList(); - - public List getPool() { - return (pool); - } - - public PoolEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - } - - @Override public Iterator iterator() { - return (pool.iterator()); - } - } - - public class ExceptionEntry extends PoolEntry{ - public ExceptionEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - final int exceptionTableLength = _byteReader.u2(); - for (int i = 0; i < exceptionTableLength; i++) { - getPool().add(_byteReader.u2()); - } - } - } - - public class InnerClassesEntry extends PoolEntry{ - public class InnerClassInfo{ - private final int innerAccess; - - private final int innerIndex; - - private final int innerNameIndex; - - private final int outerIndex; - - public InnerClassInfo(ByteReader _byteReader) { - innerIndex = _byteReader.u2(); - outerIndex = _byteReader.u2(); - innerNameIndex = _byteReader.u2(); - innerAccess = _byteReader.u2(); - } - - public int getInnerAccess() { - return (innerAccess); - } - - public int getInnerIndex() { - return (innerIndex); - } - - public int getInnerNameIndex() { - return (innerNameIndex); - } - - public int getOuterIndex() { - return (outerIndex); - } - } - - public InnerClassesEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - final int innerClassesTableLength = _byteReader.u2(); - for (int i = 0; i < innerClassesTableLength; i++) { - getPool().add(new InnerClassInfo(_byteReader)); - } - } - } - - public class LineNumberTableEntry extends PoolEntry{ - - public class StartLineNumberPair{ - private final int lineNumber; - - private final int start; - - public StartLineNumberPair(ByteReader _byteReader) { - start = _byteReader.u2(); - lineNumber = _byteReader.u2(); - } - - public int getLineNumber() { - return (lineNumber); - } - - public int getStart() { - return (start); - } - } - - public LineNumberTableEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - final int lineNumberTableLength = _byteReader.u2(); - for (int i = 0; i < lineNumberTableLength; i++) { - getPool().add(new StartLineNumberPair(_byteReader)); - } - } - - public int getSourceLineNumber(int _start, boolean _exact) { - final Iterator i = getPool().iterator(); - if (i.hasNext()) { - StartLineNumberPair from = i.next(); - while (i.hasNext()) { - final StartLineNumberPair to = i.next(); - if (_exact) { - if (_start == from.getStart()) { - return (from.getLineNumber()); - } - } else if ((_start >= from.getStart()) && (_start < to.getStart())) { - return (from.getLineNumber()); - } - from = to; - } - if (_exact) { - if (_start == from.getStart()) { - return (from.getLineNumber()); - } - } else if (_start >= from.getStart()) { - return (from.getLineNumber()); - } - } - - return (-1); - } - } - - public class EnclosingMethodEntry extends AttributePoolEntry{ - - public EnclosingMethodEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - enclosingClassIndex = _byteReader.u2(); - enclosingMethodIndex = _byteReader.u2(); - } - - private final int enclosingClassIndex; - - public int getClassIndex() { - return (enclosingClassIndex); - } - - private final int enclosingMethodIndex; - - public int getMethodIndex() { - return (enclosingMethodIndex); - } - } - - public class SignatureEntry extends AttributePoolEntry{ - - public SignatureEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - signatureIndex = _byteReader.u2(); - } - - private final int signatureIndex; - - int getSignatureIndex() { - return (signatureIndex); - } - } - - public class RealLocalVariableTableEntry extends PoolEntry implements - LocalVariableTableEntry{ - - class RealLocalVariableInfo implements LocalVariableInfo{ - private final int descriptorIndex; - - private final int usageLength; - - private final int variableNameIndex; - - private final int start; - - private final int variableIndex; - - public RealLocalVariableInfo(ByteReader _byteReader) { - start = _byteReader.u2(); - usageLength = _byteReader.u2(); - variableNameIndex = _byteReader.u2(); - descriptorIndex = _byteReader.u2(); - variableIndex = _byteReader.u2(); - } - - public int getDescriptorIndex() { - return (descriptorIndex); - } - - public int getLength() { - return (usageLength); - } - - public int getNameIndex() { - return (variableNameIndex); - } - - @Override public int getStart() { - return (start); - } - - @Override public int getVariableIndex() { - return (variableIndex); - } - - @Override public String getVariableName() { - return (constantPool.getUTF8Entry(variableNameIndex).getUTF8()); - } - - @Override public String getVariableDescriptor() { - return (constantPool.getUTF8Entry(descriptorIndex).getUTF8()); - } - - @Override public int getEnd() { - return (start + usageLength); - } - - @Override public boolean isArray() { - return (getVariableDescriptor().startsWith("[")); - } - } - - public RealLocalVariableTableEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - final int localVariableTableLength = _byteReader.u2(); - for (int i = 0; i < localVariableTableLength; i++) { - getPool().add(new RealLocalVariableInfo(_byteReader)); - } - } - - public RealLocalVariableInfo getVariable(int _pc, int _index) { - RealLocalVariableInfo returnValue = null; - // System.out.println("pc = " + _pc + " index = " + _index); - for (final RealLocalVariableInfo localVariableInfo : getPool()) { - // System.out.println(" start=" + localVariableInfo.getStart() + " length=" + localVariableInfo.getLength() - // + " varidx=" + localVariableInfo.getVariableIndex()); - if ((_pc >= (localVariableInfo.getStart() - 1)) - && (_pc <= (localVariableInfo.getStart() + localVariableInfo.getLength())) - && (_index == localVariableInfo.getVariableIndex())) { - returnValue = localVariableInfo; - break; - } - } - - // System.out.println("returning " + returnValue); - return (returnValue); - } - - public String getVariableName(int _pc, int _index) { - String returnValue = "unknown"; - final RealLocalVariableInfo localVariableInfo = (RealLocalVariableInfo) getVariable(_pc, _index); - if (localVariableInfo != null) { - returnValue = convert(constantPool.getUTF8Entry(localVariableInfo.getDescriptorIndex()).getUTF8(), constantPool - .getUTF8Entry(localVariableInfo.getNameIndex()).getUTF8()); - } - // System.out.println("returning " + returnValue); - return (returnValue); - } - } - - class BootstrapMethodsEntry extends AttributePoolEntry{ - // http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.21 - class BootstrapMethod{ - class BootstrapArgument{ - public BootstrapArgument(ByteReader _byteReader) { - argument = _byteReader.u2(); - } - - int argument;// u2; - } - - public BootstrapMethod(ByteReader _byteReader) { - bootstrapMethodRef = _byteReader.u2(); - numBootstrapArguments = _byteReader.u2(); - bootstrapArguments = new BootstrapArgument[numBootstrapArguments]; - for (int i = 0; i < numBootstrapArguments; i++) { - bootstrapArguments[i] = new BootstrapArgument(_byteReader); - } - } - - int bootstrapMethodRef; //u2 - - int numBootstrapArguments; //u2 - - BootstrapArgument bootstrapArguments[]; - } - - BootstrapMethodsEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - numBootstrapMethods = _byteReader.u2(); - bootstrapMethods = new BootstrapMethod[numBootstrapMethods]; - for (int i = 0; i < numBootstrapMethods; i++) { - bootstrapMethods[i] = new BootstrapMethod(_byteReader); - } - } - - private int numBootstrapMethods; - - BootstrapMethod bootstrapMethods[]; - - int getNumBootstrapMethods() { - return (numBootstrapMethods); - } - - } - - public class OtherEntry extends AttributePoolEntry{ - private final byte[] bytes; - - public OtherEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - bytes = _byteReader.bytes(_length); - } - - public byte[] getBytes() { - return (bytes); - } - - @Override public String toString() { - return (new String(bytes)); - } - - } - - class StackMapTableEntry extends AttributePoolEntry{ - private byte[] bytes; - - StackMapTableEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - bytes = _byteReader.bytes(_length); - } - - byte[] getBytes() { - return (bytes); - } - - @Override public String toString() { - return (new String(bytes)); - } - } - - public class LocalVariableTypeTableEntry extends AttributePoolEntry{ - private byte[] bytes; - - public LocalVariableTypeTableEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - bytes = _byteReader.bytes(_length); - } - - public byte[] getBytes() { - return (bytes); - } - - @Override public String toString() { - return (new String(bytes)); - } - } - - public class SourceFileEntry extends AttributePoolEntry{ - private final int sourceFileIndex; - - public SourceFileEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - sourceFileIndex = _byteReader.u2(); - } - - public int getSourceFileIndex() { - return (sourceFileIndex); - } - - public String getSourceFileName() { - return (constantPool.getUTF8Entry(sourceFileIndex).getUTF8()); - } - } - - public class SyntheticEntry extends AttributePoolEntry{ - public SyntheticEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - } - } - - public class RuntimeAnnotationsEntry extends PoolEntry{ - - public class AnnotationInfo{ - private final int typeIndex; - - private final int elementValuePairCount; - - public class ElementValuePair{ - class Value{ - Value(int _tag) { - tag = _tag; - } - - int tag; - - } - - public class PrimitiveValue extends Value{ - private final int typeNameIndex; - - private final int constNameIndex; - - public PrimitiveValue(int _tag, ByteReader _byteReader) { - super(_tag); - typeNameIndex = _byteReader.u2(); - //constNameIndex = _byteReader.u2(); - constNameIndex = 0; - } - - public int getConstNameIndex() { - return (constNameIndex); - } - - public int getTypeNameIndex() { - return (typeNameIndex); - } - } - - public class EnumValue extends Value{ - EnumValue(int _tag, ByteReader _byteReader) { - super(_tag); - } - } - - public class ArrayValue extends Value{ - ArrayValue(int _tag, ByteReader _byteReader) { - super(_tag); - } - } - - public class ClassValue extends Value{ - ClassValue(int _tag, ByteReader _byteReader) { - super(_tag); - } - } - - public class AnnotationValue extends Value{ - AnnotationValue(int _tag, ByteReader _byteReader) { - super(_tag); - } - } - - @SuppressWarnings("unused") private final int elementNameIndex; - - @SuppressWarnings("unused") private Value value; - - public ElementValuePair(ByteReader _byteReader) { - elementNameIndex = _byteReader.u2(); - final int tag = _byteReader.u1(); - - switch (tag) { - case SIGC_BYTE: - case SIGC_CHAR: - case SIGC_INT: - case SIGC_LONG: - case SIGC_DOUBLE: - case SIGC_FLOAT: - case SIGC_SHORT: - case SIGC_BOOLEAN: - case 's': // special for String - value = new PrimitiveValue(tag, _byteReader); - break; - case 'e': // special for Enum - value = new EnumValue(tag, _byteReader); - break; - case 'c': // special for class - value = new ClassValue(tag, _byteReader); - break; - case '@': // special for Annotation - value = new AnnotationValue(tag, _byteReader); - break; - case 'a': // special for array - value = new ArrayValue(tag, _byteReader); - break; - } - } - } - - private final ElementValuePair[] elementValuePairs; - - public AnnotationInfo(ByteReader _byteReader) { - typeIndex = _byteReader.u2(); - elementValuePairCount = _byteReader.u2(); - elementValuePairs = new ElementValuePair[elementValuePairCount]; - for (int i = 0; i < elementValuePairCount; i++) { - elementValuePairs[i] = new ElementValuePair(_byteReader); - } - } - - public int getTypeIndex() { - return (typeIndex); - } - - public String getTypeDescriptor() { - return (constantPool.getUTF8Entry(typeIndex).getUTF8()); - } - } - - public RuntimeAnnotationsEntry(ByteReader _byteReader, int _nameIndex, int _length) { - super(_byteReader, _nameIndex, _length); - final int localVariableTableLength = _byteReader.u2(); - for (int i = 0; i < localVariableTableLength; i++) { - getPool().add(new AnnotationInfo(_byteReader)); - } - } - - } - - private CodeEntry codeEntry = null; - - private EnclosingMethodEntry enclosingMethodEntry = null; - - private DeprecatedEntry deprecatedEntry = null; - - private ExceptionEntry exceptionEntry = null; - - private LineNumberTableEntry lineNumberTableEntry = null; - - private LocalVariableTableEntry localVariableTableEntry = null; - - private RuntimeAnnotationsEntry runtimeVisibleAnnotationsEntry; - - private RuntimeAnnotationsEntry runtimeInvisibleAnnotationsEntry; - - private SourceFileEntry sourceFileEntry = null; - - private SyntheticEntry syntheticEntry = null; - - private BootstrapMethodsEntry bootstrapMethodsEntry = null; - - private final static String LOCALVARIABLETABLE_TAG = "LocalVariableTable"; - - private final static String CONSTANTVALUE_TAG = "ConstantValue"; - - private final static String LINENUMBERTABLE_TAG = "LineNumberTable"; - - private final static String SOURCEFILE_TAG = "SourceFile"; - - private final static String SYNTHETIC_TAG = "Synthetic"; - - private final static String EXCEPTIONS_TAG = "Exceptions"; - - private final static String INNERCLASSES_TAG = "InnerClasses"; - - private final static String DEPRECATED_TAG = "Deprecated"; - - private final static String CODE_TAG = "Code"; - - private final static String ENCLOSINGMETHOD_TAG = "EnclosingMethod"; - - private final static String SIGNATURE_TAG = "Signature"; - - private final static String RUNTIMEINVISIBLEANNOTATIONS_TAG = "RuntimeInvisibleAnnotations"; - - private final static String RUNTIMEVISIBLEANNOTATIONS_TAG = "RuntimeVisibleAnnotations"; - - private final static String BOOTSTRAPMETHODS_TAG = "BootstrapMethods"; - - private final static String STACKMAPTABLE_TAG = "StackMapTable"; - - private final static String LOCALVARIABLETYPETABLE_TAG = "LocalVariableTypeTable"; - - public AttributePool(ByteReader _byteReader, String name) { - final int attributeCount = _byteReader.u2(); - AttributePoolEntry entry = null; - for (int i = 0; i < attributeCount; i++) { - final int attributeNameIndex = _byteReader.u2(); - final int length = _byteReader.u4(); - UTF8Entry utf8Entry = constantPool.getUTF8Entry(attributeNameIndex); - if (utf8Entry == null) { - throw new IllegalStateException("corrupted state reading attributes for " + name); - } - final String attributeName = utf8Entry.getUTF8(); - if (attributeName.equals(LOCALVARIABLETABLE_TAG)) { - localVariableTableEntry = new RealLocalVariableTableEntry(_byteReader, attributeNameIndex, length); - entry = (RealLocalVariableTableEntry) localVariableTableEntry; - } else if (attributeName.equals(CONSTANTVALUE_TAG)) { - entry = new ConstantValueEntry(_byteReader, attributeNameIndex, length); - } else if (attributeName.equals(LINENUMBERTABLE_TAG)) { - lineNumberTableEntry = new LineNumberTableEntry(_byteReader, attributeNameIndex, length); - entry = lineNumberTableEntry; - } else if (attributeName.equals(SOURCEFILE_TAG)) { - sourceFileEntry = new SourceFileEntry(_byteReader, attributeNameIndex, length); - entry = sourceFileEntry; - } else if (attributeName.equals(SYNTHETIC_TAG)) { - syntheticEntry = new SyntheticEntry(_byteReader, attributeNameIndex, length); - entry = syntheticEntry; - } else if (attributeName.equals(EXCEPTIONS_TAG)) { - exceptionEntry = new ExceptionEntry(_byteReader, attributeNameIndex, length); - entry = exceptionEntry; - } else if (attributeName.equals(INNERCLASSES_TAG)) { - entry = new InnerClassesEntry(_byteReader, attributeNameIndex, length); - } else if (attributeName.equals(DEPRECATED_TAG)) { - deprecatedEntry = new DeprecatedEntry(_byteReader, attributeNameIndex, length); - entry = deprecatedEntry; - } else if (attributeName.equals(CODE_TAG)) { - codeEntry = new CodeEntry(_byteReader, attributeNameIndex, length); - entry = codeEntry; - } else if (attributeName.equals(ENCLOSINGMETHOD_TAG)) { - enclosingMethodEntry = new EnclosingMethodEntry(_byteReader, attributeNameIndex, length); - entry = enclosingMethodEntry; - } else if (attributeName.equals(SIGNATURE_TAG)) { - entry = new SignatureEntry(_byteReader, attributeNameIndex, length); - } else if (attributeName.equals(RUNTIMEINVISIBLEANNOTATIONS_TAG)) { - runtimeInvisibleAnnotationsEntry = new RuntimeAnnotationsEntry(_byteReader, attributeNameIndex, length); - entry = runtimeInvisibleAnnotationsEntry; - } else if (attributeName.equals(RUNTIMEVISIBLEANNOTATIONS_TAG)) { - runtimeVisibleAnnotationsEntry = new RuntimeAnnotationsEntry(_byteReader, attributeNameIndex, length); - entry = runtimeVisibleAnnotationsEntry; - } else if (attributeName.equals(BOOTSTRAPMETHODS_TAG)) { - bootstrapMethodsEntry = new BootstrapMethodsEntry(_byteReader, attributeNameIndex, length); - entry = bootstrapMethodsEntry; - // http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.21 - } else if (attributeName.equals(STACKMAPTABLE_TAG)) { - // http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.4 - - entry = new StackMapTableEntry(_byteReader, attributeNameIndex, length); - } else if (attributeName.equals(LOCALVARIABLETYPETABLE_TAG)) { - // http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.7.14 - entry = new LocalVariableTypeTableEntry(_byteReader, attributeNameIndex, length); - } else { - logger.warning("Found unexpected Attribute (name = " + attributeName + ")"); - entry = new OtherEntry(_byteReader, attributeNameIndex, length); - } - attributePoolEntries.add(entry); - - } - } - - public CodeEntry getCodeEntry() { - return (codeEntry); - } - - public DeprecatedEntry getDeprecatedEntry() { - return (deprecatedEntry); - } - - public ExceptionEntry getExceptionEntry() { - return (exceptionEntry); - } - - public LineNumberTableEntry getLineNumberTableEntry() { - return (lineNumberTableEntry); - } - - public LocalVariableTableEntry getLocalVariableTableEntry() { - return (localVariableTableEntry); - } - - public SourceFileEntry getSourceFileEntry() { - return (sourceFileEntry); - } - - public SyntheticEntry getSyntheticEntry() { - return (syntheticEntry); - } - - public RuntimeAnnotationsEntry getRuntimeInvisibleAnnotationsEntry() { - return (runtimeInvisibleAnnotationsEntry); - } - - public RuntimeAnnotationsEntry getRuntimeVisibleAnnotationsEntry() { - return (runtimeVisibleAnnotationsEntry); - } - - public RuntimeAnnotationsEntry getBootstrap() { - return (runtimeVisibleAnnotationsEntry); - } - - } - - private static ClassLoader classModelLoader = ClassModel.class.getClassLoader(); - - public class ClassModelField{ - private final int fieldAccessFlags; - - AttributePool fieldAttributePool; - - private final int descriptorIndex; - - private final int index; - - private final int nameIndex; - - public ClassModelField(ByteReader _byteReader, int _index) { - index = _index; - fieldAccessFlags = _byteReader.u2(); - nameIndex = _byteReader.u2(); - descriptorIndex = _byteReader.u2(); - fieldAttributePool = new AttributePool(_byteReader, getName()); - } - - public int getAccessFlags() { - return (fieldAccessFlags); - } - - public AttributePool getAttributePool() { - return (fieldAttributePool); - } - - public String getDescriptor() { - return (getDescriptorUTF8Entry().getUTF8()); - } - - public int getDescriptorIndex() { - return (descriptorIndex); - } - - public ConstantPool.UTF8Entry getDescriptorUTF8Entry() { - return (constantPool.getUTF8Entry(descriptorIndex)); - } - - public int getIndex() { - return (index); - } - - public String getName() { - return (getNameUTF8Entry().getUTF8()); - } - - public int getNameIndex() { - return (nameIndex); - } - - public ConstantPool.UTF8Entry getNameUTF8Entry() { - return (constantPool.getUTF8Entry(nameIndex)); - } - - public Class getDeclaringClass() { - final String clazzName = getDescriptor().replaceAll("^L", "").replaceAll("/", ".").replaceAll(";$", ""); - try { - return (Class.forName(clazzName, true, classModelLoader)); - } catch (final ClassNotFoundException e) { - System.out.println("no class found for " + clazzName); - e.printStackTrace(); - return null; - } - } - } - - public class ClassModelMethod{ - - private final int methodAccessFlags; - - private final AttributePool methodAttributePool; - - private final int descriptorIndex; - - private final int index; - - private final int nameIndex; - - private final CodeEntry codeEntry; - - public ClassModelMethod(ByteReader _byteReader, int _index) { - index = _index; - methodAccessFlags = _byteReader.u2(); - nameIndex = _byteReader.u2(); - descriptorIndex = _byteReader.u2(); - methodAttributePool = new AttributePool(_byteReader, getName()); - codeEntry = methodAttributePool.getCodeEntry(); - } - - public int getAccessFlags() { - return (methodAccessFlags); - } - - public boolean isStatic() { - return (Access.STATIC.bitIsSet(methodAccessFlags)); - } - - public AttributePool getAttributePool() { - return (methodAttributePool); - } - - public AttributePool.CodeEntry getCodeEntry() { - return (methodAttributePool.getCodeEntry()); - } - - public String getDescriptor() { - return (getDescriptorUTF8Entry().getUTF8()); - } - - public int getDescriptorIndex() { - return (descriptorIndex); - } - - public ConstantPool.UTF8Entry getDescriptorUTF8Entry() { - return (constantPool.getUTF8Entry(descriptorIndex)); - } - - public int getIndex() { - return (index); - } - - public String getName() { - return (getNameUTF8Entry().getUTF8()); - } - - public int getNameIndex() { - return (nameIndex); - } - - public ConstantPool.UTF8Entry getNameUTF8Entry() { - return (constantPool.getUTF8Entry(nameIndex)); - } - - public ConstantPool getConstantPool() { - return (constantPool); - } - - public AttributePool.LineNumberTableEntry getLineNumberTableEntry() { - return (getAttributePool().codeEntry.codeEntryAttributePool.lineNumberTableEntry); - } - - public LocalVariableTableEntry getLocalVariableTableEntry() { - return (getAttributePool().codeEntry.codeEntryAttributePool.localVariableTableEntry); - } - - void setLocalVariableTableEntry(LocalVariableTableEntry _localVariableTableEntry) { - getAttributePool().codeEntry.codeEntryAttributePool.localVariableTableEntry = _localVariableTableEntry; - } - - public LocalVariableInfo getLocalVariable(int _pc, int _index) { - return (getLocalVariableTableEntry().getVariable(_pc, _index)); - } - - public byte[] getCode() { - return (codeEntry.getCode()); - } - - public ClassModel getClassModel() { - return (ClassModel.this); - } - - public String toString() { - return getClassModel().getClassWeAreModelling().getName() + "." + getName() + " " + getDescriptor(); - } - - public ClassModel getOwnerClassModel() { - return ClassModel.this; - } - } - - public class ClassModelInterface{ - private final int interfaceIndex; - - ClassModelInterface(ByteReader _byteReader) { - interfaceIndex = _byteReader.u2(); - } - - ConstantPool.ClassEntry getClassEntry() { - return (constantPool.getClassEntry(interfaceIndex)); - } - - int getInterfaceIndex() { - return (interfaceIndex); - } - - } - - private Class clazz; - - /** - * We extract the class's classloader and name and delegate to private parse method. - * @param _class The class we wish to model - * @throws ClassParseException - */ - public void parse(Class _class) throws ClassParseException { - - clazz = _class; - parse(_class.getClassLoader(), _class.getName()); - } - - /** - * Populate this model by parsing a given classfile from the given classloader. - * - * We create a ByteReader (wrapper around the bytes representing the classfile) and pass it to local inner classes to handle the various sections of the class file. - * - * @see ByteReader - * @see Java 5 Class File Format - * @param _classLoader The classloader to access the classfile - * @param _className The name of the class to load (we convert '.' to '/' and append ".class" so you don't have to). - * @throws ClassParseException - */ - private void parse(ClassLoader _classLoader, String _className) throws ClassParseException { - - parse(_classLoader.getResourceAsStream(_className.replace('.', '/') + ".class")); - } - - void parse(InputStream _inputStream) throws ClassParseException { - - ByteReader byteReader = new ByteReader(_inputStream); - magic = byteReader.u4(); - minorVersion = byteReader.u2(); - majorVersion = byteReader.u2(); - constantPool = new ConstantPool(byteReader); - - accessFlags = byteReader.u2(); - thisClassConstantPoolIndex = byteReader.u2(); - superClassConstantPoolIndex = byteReader.u2(); - - final int interfaceCount = byteReader.u2(); - for (int i = 0; i < interfaceCount; i++) { - final ClassModelInterface iface = new ClassModelInterface(byteReader); - interfaces.add(iface); - } - - final int fieldCount = byteReader.u2(); - for (int i = 0; i < fieldCount; i++) { - final ClassModelField field = new ClassModelField(byteReader, i); - fields.add(field); - } - - final int methodPoolLength = byteReader.u2(); - for (int i = 0; i < methodPoolLength; i++) { - final ClassModelMethod method = new ClassModelMethod(byteReader, i); - methods.add(method); - } - - attributePool = new AttributePool(byteReader, getClassWeAreModelling().getSimpleName()); - } - - public int getMagic() { - return (magic); - } - - public int getMajorVersion() { - return (majorVersion); - } - - public int getMinorVersion() { - return (minorVersion); - } - - public int getAccessFlags() { - return (accessFlags); - } - - public ConstantPool getConstantPool() { - return (constantPool); - } - - public int getThisClassConstantPoolIndex() { - return (thisClassConstantPoolIndex); - } - - public int getSuperClassConstantPoolIndex() { - return (superClassConstantPoolIndex); - } - - public AttributePool getAttributePool() { - return (attributePool); - } - - public ClassModelField getField(String _name, String _descriptor) { - for (final ClassModelField entry : fields) { - if (entry.getName().equals(_name) && entry.getDescriptor().equals(_descriptor)) { - return (entry); - } - } - return superClazz.getField(_name, _descriptor); - } - - public ClassModelField getField(String _name) { - for (final ClassModelField entry : fields) { - if (entry.getName().equals(_name)) { - return (entry); - } - } - return superClazz.getField(_name); - } - - public ClassModelMethod getMethod(String _name, String _descriptor) { - for (final ClassModelMethod entry : methods) { - if (entry.getName().equals(_name) && entry.getDescriptor().equals(_descriptor)) { - return (entry); - } - } - return superClazz != null ? superClazz.getMethod(_name, _descriptor) : (null); - } - - public List getFieldPoolEntries() { - return (fields); - } - - /** - * Look up a ConstantPool MethodEntry and return the corresponding Method. - * - * @param _methodEntry The ConstantPool MethodEntry we want. - * @param _isSpecial True if we wish to delegate to super (to support super.foo()) - * - * @return The Method or null if we fail to locate a given method. - */ - public ClassModelMethod getMethod(MethodEntry _methodEntry, boolean _isSpecial) { - final String entryClassNameInDotForm = _methodEntry.getClassEntry().getNameUTF8Entry().getUTF8().replace('/', '.'); - - // Shortcut direct calls to supers to allow "foo() { super.foo() }" type stuff to work - if (_isSpecial && (superClazz != null) && superClazz.isSuperClass(entryClassNameInDotForm)) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("going to look in super:" + superClazz.getClassWeAreModelling().getName() + " on behalf of " - + entryClassNameInDotForm); - } - return superClazz.getMethod(_methodEntry, false); - } - - for (final ClassModelMethod entry : methods) { - if (entry.getName().equals(_methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()) - && entry.getDescriptor().equals(_methodEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8())) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found " + clazz.getName() + "." + entry.getName() + " " + entry.getDescriptor() + " for " - + entryClassNameInDotForm); - } - return (entry); - } - } - - return superClazz != null ? superClazz.getMethod(_methodEntry, false) : (null); - } - - /** - * Create a MethodModel for a given method name and signature. - * - * @param _name - * @param _signature - * @return - * @throws AparapiException - */ - - public MethodModel getMethodModel(String _name, String _signature) throws AparapiException { - final ClassModelMethod method = getMethod(_name, _signature); - return new MethodModel(method); - } - - // These fields use for accessor conversion - private final ArrayList structMembers = new ArrayList(); - - private final ArrayList structMemberOffsets = new ArrayList(); - - private final ArrayList structMemberTypes = new ArrayList(); - - private int totalStructSize = 0; - - public ArrayList getStructMembers() { - return structMembers; - } - - public ArrayList getStructMemberOffsets() { - return structMemberOffsets; - } - - public ArrayList getStructMemberTypes() { - return structMemberTypes; - } - - public int getTotalStructSize() { - return totalStructSize; - } - - public void setTotalStructSize(int x) { - totalStructSize = x; - } - - Entrypoint getEntrypoint(String _entrypointName, String _descriptor, Object _k) throws AparapiException { - final MethodModel method = getMethodModel(_entrypointName, _descriptor); - return (new Entrypoint(this, method, _k)); - } - - public Class getClassWeAreModelling() { - return clazz; - } - - public Entrypoint getEntrypoint(String _entrypointName, Object _k) throws AparapiException { - return (getEntrypoint(_entrypointName, "()V", _k)); - } - - public Entrypoint getEntrypoint() throws AparapiException { - return (getEntrypoint("run", "()V", null)); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/Entrypoint.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/Entrypoint.java deleted file mode 100644 index 28aadab2..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/Entrypoint.java +++ /dev/null @@ -1,912 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.model; - -import com.amd.aparapi.*; -import com.amd.aparapi.internal.exception.*; -import com.amd.aparapi.internal.instruction.*; -import com.amd.aparapi.internal.instruction.InstructionSet.*; -import com.amd.aparapi.internal.model.ClassModel.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry.*; -import com.amd.aparapi.internal.util.*; - -import java.lang.reflect.*; -import java.util.*; -import java.util.logging.*; - -public class Entrypoint{ - - private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - private final List referencedClassModelFields = new ArrayList(); - - private final List referencedFields = new ArrayList(); - - private ClassModel classModel; - - private Object kernelInstance = null; - - private final boolean fallback = false; - - private final Set referencedFieldNames = new LinkedHashSet(); - - private final Set arrayFieldAssignments = new LinkedHashSet(); - - private final Set arrayFieldAccesses = new LinkedHashSet(); - - // Classes of object array members - private final HashMap objectArrayFieldsClasses = new HashMap(); - - // Supporting classes of object array members like supers - private final HashMap allFieldsClasses = new HashMap(); - - // Keep track of arrays whose length is taken via foo.length - private final Set arrayFieldArrayLengthUsed = new LinkedHashSet(); - - private final List calledMethods = new ArrayList(); - - private MethodModel methodModel; - - /** - True is an indication to use the fp64 pragma - */ - private boolean usesDoubles; - - /** - True is an indication to use the byte addressable store pragma - */ - private boolean usesByteWrites; - - /** - True is an indication to use the atomics pragmas - */ - private boolean usesAtomic32; - - private boolean usesAtomic64; - - public boolean requiresDoublePragma() { - return usesDoubles; - } - - public boolean requiresByteAddressableStorePragma() { - return usesByteWrites; - } - - /* Atomics are detected in Entrypoint */ - public void setRequiresAtomics32Pragma(boolean newVal) { - usesAtomic32 = newVal; - } - - public void setRequiresAtomics64Pragma(boolean newVal) { - usesAtomic64 = newVal; - } - - public boolean requiresAtomic32Pragma() { - return usesAtomic32; - } - - public boolean requiresAtomic64Pragma() { - return usesAtomic64; - } - - public Object getKernelInstance() { - return kernelInstance; - } - - public void setKernelInstance(Object _k) { - kernelInstance = _k; - } - - public Map getObjectArrayFieldsClasses() { - return objectArrayFieldsClasses; - } - - public static Field getFieldFromClassHierarchy(Class _clazz, String _name) throws AparapiException { - - // look in self - // if found, done - - // get superclass of curr class - // while not found - // get its fields - // if found - // if not private, done - // if private, failure - // if not found, get next superclass - - Field field = null; - - assert _name != null : "_name should not be null"; - - if (logger.isLoggable(Level.FINE)) { - logger.fine("looking for " + _name + " in " + _clazz.getName()); - } - - try { - field = _clazz.getDeclaredField(_name); - final Class type = field.getType(); - if (type.isPrimitive() || type.isArray()) { - return field; - } - if (field.getAnnotation(Kernel.NoCL.class) != null) { - return null; - } - if (logger.isLoggable(Level.FINE)) { - logger.fine("field type is " + type.getName()); - } - throw new ClassParseException(ClassParseException.TYPE.OBJECTFIELDREFERENCE); - } catch (final NoSuchFieldException nsfe) { - // This should be looger fine... - //System.out.println("no " + _name + " in " + _clazz.getName()); - } - - Class mySuper = _clazz.getSuperclass(); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("looking for " + _name + " in " + mySuper.getName()); - } - - // Find better way to do this check - while (!mySuper.getName().equals(Kernel.class.getName())) { - try { - field = mySuper.getDeclaredField(_name); - final int modifiers = field.getModifiers(); - if ((Modifier.isStatic(modifiers) == false) && (Modifier.isPrivate(modifiers) == false)) { - final Class type = field.getType(); - if (logger.isLoggable(Level.FINE)) { - logger.fine("field type is " + type.getName()); - } - if (type.isPrimitive() || type.isArray()) { - return field; - } - throw new ClassParseException(ClassParseException.TYPE.OBJECTFIELDREFERENCE); - } else { - // This should be looger fine... - //System.out.println("field " + _name + " not suitable: " + java.lang.reflect.Modifier.toString(modifiers)); - return null; - } - } catch (final NoSuchFieldException nsfe) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("no " + _name + " in " + mySuper.getName()); - } - mySuper = mySuper.getSuperclass(); - assert mySuper != null : "mySuper is null!"; - } - } - return null; - } - - /* - * Update the list of object array member classes and all the superclasses - * of those classes and the fields in each class - * - * It is important to have only one ClassModel for each class used in the kernel - * and only one MethodModel per method, so comparison operations work properly. - */ - public ClassModel getOrUpdateAllClassAccesses(String className) throws AparapiException { - ClassModel memberClassModel = allFieldsClasses.get(className); - if (memberClassModel == null) { - try { - final Class memberClass = Class.forName(className); - - // Immediately add this class and all its supers if necessary - memberClassModel = new ClassModel(memberClass); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("adding class " + className); - } - allFieldsClasses.put(className, memberClassModel); - ClassModel superModel = memberClassModel.getSuperClazz(); - while (superModel != null) { - // See if super is already added - final ClassModel oldSuper = allFieldsClasses.get(superModel.getClassWeAreModelling().getName()); - if (oldSuper != null) { - if (oldSuper != superModel) { - memberClassModel.replaceSuperClazz(oldSuper); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("replaced super " + oldSuper.getClassWeAreModelling().getName() + " for " + className); - } - } - } else { - allFieldsClasses.put(superModel.getClassWeAreModelling().getName(), superModel); - if (logger.isLoggable(Level.FINEST)) { - logger.finest("add new super " + superModel.getClassWeAreModelling().getName() + " for " + className); - } - } - - superModel = superModel.getSuperClazz(); - } - } catch (final Exception e) { - if (logger.isLoggable(Level.INFO)) { - logger.info("Cannot find: " + className); - } - throw new AparapiException(e); - } - } - - return memberClassModel; - } - - public ClassModelMethod resolveAccessorCandidate(MethodCall _methodCall, MethodEntry _methodEntry) throws AparapiException { - final String methodsActualClassName = (_methodEntry.getClassEntry().getNameUTF8Entry().getUTF8()).replace('/', '.'); - - if (_methodCall instanceof VirtualMethodCall) { - final Instruction callInstance = ((VirtualMethodCall) _methodCall).getInstanceReference(); - if (callInstance instanceof AccessArrayElement) { - final AccessArrayElement arrayAccess = (AccessArrayElement) callInstance; - final Instruction refAccess = arrayAccess.getArrayRef(); - //if (refAccess instanceof I_GETFIELD) { - - // It is a call from a member obj array element - if (logger.isLoggable(Level.FINE)) { - logger.fine("Looking for class in accessor call: " + methodsActualClassName); - } - final ClassModel memberClassModel = getOrUpdateAllClassAccesses(methodsActualClassName); - - // false = no invokespecial allowed here - return memberClassModel.getMethod(_methodEntry, false); - //} - } - } - return null; - } - - /* - * Update accessor structures when there is a direct access to an - * obect array element's data members - */ - public void updateObjectMemberFieldAccesses(String className, FieldEntry field) throws AparapiException { - final String accessedFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - - // Quickly bail if it is a ref - if (field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8().startsWith("L") - || field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8().startsWith("[L")) { - throw new ClassParseException(ClassParseException.TYPE.OBJECTARRAYFIELDREFERENCE); - } - - if (logger.isLoggable(Level.FINEST)) { - logger.finest("Updating access: " + className + " field:" + accessedFieldName); - } - - final ClassModel memberClassModel = getOrUpdateAllClassAccesses(className); - final Class memberClass = memberClassModel.getClassWeAreModelling(); - ClassModel superCandidate = null; - - // We may add this field if no superclass match - boolean add = true; - - // No exact match, look for a superclass - for (final ClassModel c : allFieldsClasses.values()) { - if (logger.isLoggable(Level.FINEST)) { - logger.finest(" super: " + c.getClassWeAreModelling().getName() + " for " + className); - } - if (c.isSuperClass(memberClass)) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("selected super: " + c.getClassWeAreModelling().getName() + " for " + className); - } - superCandidate = c; - break; - } - - if (logger.isLoggable(Level.FINEST)) { - logger.finest(" no super match for " + memberClass.getName()); - } - } - - // Look at super's fields for a match - if (superCandidate != null) { - final ArrayList structMemberSet = superCandidate.getStructMembers(); - for (final FieldEntry f : structMemberSet) { - if (f.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(accessedFieldName) - && f.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8() - .equals(field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8())) { - - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found match: " + accessedFieldName + " class: " + field.getClassEntry().getNameUTF8Entry().getUTF8() - + " to class: " + f.getClassEntry().getNameUTF8Entry().getUTF8()); - } - - if (!f.getClassEntry().getNameUTF8Entry().getUTF8().equals(field.getClassEntry().getNameUTF8Entry().getUTF8())) { - // Look up in class hierarchy to ensure it is the same field - final Field superField = getFieldFromClassHierarchy(superCandidate.getClassWeAreModelling(), f - .getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - final Field classField = getFieldFromClassHierarchy(memberClass, f.getNameAndTypeEntry().getNameUTF8Entry() - .getUTF8()); - if (!superField.equals(classField)) { - throw new ClassParseException(ClassParseException.TYPE.OVERRIDENFIELD); - } - } - - add = false; - break; - } - } - } - - // There was no matching field in the supers, add it to the memberClassModel - // if not already there - if (add) { - boolean found = false; - final ArrayList structMemberSet = memberClassModel.getStructMembers(); - for (final FieldEntry f : structMemberSet) { - if (f.getNameAndTypeEntry().getNameUTF8Entry().getUTF8().equals(accessedFieldName) - && f.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8() - .equals(field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8())) { - found = true; - } - } - if (!found) { - structMemberSet.add(field); - if (logger.isLoggable(Level.FINE)) { - logger.fine("Adding assigned field " + field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8() + " type: " - + field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8() + " to " - + memberClassModel.getClassWeAreModelling().getName()); - } - } - } - } - - /* - * Find a suitable call target in the kernel class, supers, object members or static calls - */ - ClassModelMethod resolveCalledMethod(MethodCall methodCall, ClassModel classModel) throws AparapiException { - MethodEntry methodEntry = methodCall.getConstantPoolMethodEntry(); - int thisClassIndex = classModel.getThisClassConstantPoolIndex();//arf - boolean isMapped = (thisClassIndex != methodEntry.getClassIndex()) && Kernel.isMappedMethod(methodEntry); - if (logger.isLoggable(Level.FINE)) { - if (methodCall instanceof I_INVOKESPECIAL) { - logger.fine("Method call to super: " + methodEntry); - } else if (thisClassIndex != methodEntry.getClassIndex()) { - logger.fine("Method call to ??: " + methodEntry + ", isMappedMethod=" + isMapped); - } else { - logger.fine("Method call in kernel class: " + methodEntry); - } - } - - ClassModelMethod m = classModel.getMethod(methodEntry, (methodCall instanceof I_INVOKESPECIAL) ? true : false); - - // Did not find method in this class or supers. Look for data member object arrays - if (m == null && !isMapped) { - m = resolveAccessorCandidate(methodCall, methodEntry); - } - - // Look for a intra-object call in a object member - if (m == null && !isMapped) { - for (ClassModel c : allFieldsClasses.values()) { - if (c.getClassWeAreModelling().getName() - .equals(methodEntry.getClassEntry().getNameUTF8Entry().getUTF8().replace('/', '.'))) { - m = c.getMethod(methodEntry, (methodCall instanceof I_INVOKESPECIAL) ? true : false); - assert m != null; - break; - } - } - } - - // Look for static call to some other class - if ((m == null) && !isMapped && (methodCall instanceof I_INVOKESTATIC)) { - String otherClassName = methodEntry.getClassEntry().getNameUTF8Entry().getUTF8().replace('/', '.'); - ClassModel otherClassModel = getOrUpdateAllClassAccesses(otherClassName); - - //if (logger.isLoggable(Level.FINE)) { - // logger.fine("Looking for: " + methodEntry + " in other class " + otherClass.getName()); - //} - // false because INVOKESPECIAL not allowed here - m = otherClassModel.getMethod(methodEntry, false); - } - - if (logger.isLoggable(Level.INFO)) { - logger.fine("Selected method for: " + methodEntry + " is " + m); - } - - return m; - } - - public Entrypoint(ClassModel _classModel, MethodModel _methodModel, Object _k) throws AparapiException { - classModel = _classModel; - methodModel = _methodModel; - kernelInstance = _k; - - final Map methodMap = new LinkedHashMap(); - - boolean discovered = true; - - // Record which pragmas we need to enable - if (methodModel.requiresDoublePragma()) { - usesDoubles = true; - if (logger.isLoggable(Level.FINE)) { - logger.fine("Enabling doubles on " + methodModel.getName()); - } - - } - if (methodModel.requiresByteAddressableStorePragma()) { - usesByteWrites = true; - if (logger.isLoggable(Level.FINE)) { - logger.fine("Enabling byte addressable on " + methodModel.getName()); - } - } - - // Collect all methods called directly from kernel's run method - for (final MethodCall methodCall : methodModel.getMethodCalls()) { - - ClassModelMethod m = resolveCalledMethod(methodCall, classModel); - if ((m != null) && !methodMap.keySet().contains(m) && !noCL(m)) { - final MethodModel target = new MethodModel(m, this); - methodMap.put(m, target); - methodModel.getCalledMethods().add(target); - discovered = true; - } - } - - // methodMap now contains a list of method called by run itself(). - // Walk the whole graph of called methods and add them to the methodMap - while (!fallback && discovered) { - discovered = false; - for (final MethodModel mm : new ArrayList(methodMap.values())) { - for (final MethodCall methodCall : mm.getMethodCalls()) { - - ClassModelMethod m = resolveCalledMethod(methodCall, classModel); - if (m != null && !noCL(m)) { - MethodModel target = null; - if (methodMap.keySet().contains(m)) { - // we remove and then add again. Because this is a LinkedHashMap this - // places this at the end of the list underlying the map - // then when we reverse the collection (below) we get the method - // declarations in the correct order. We are trying to avoid creating forward references - target = methodMap.remove(m); - if (logger.isLoggable(Level.FINEST)) { - logger.fine("repositioning : " + m.getClassModel().getClassWeAreModelling().getName() + " " + m.getName() - + " " + m.getDescriptor()); - } - } else { - target = new MethodModel(m, this); - discovered = true; - } - methodMap.put(m, target); - // Build graph of call targets to look for recursion - mm.getCalledMethods().add(target); - } - } - } - } - - methodModel.checkForRecursion(new HashSet()); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("fallback=" + fallback); - } - - if (!fallback) { - calledMethods.addAll(methodMap.values()); - Collections.reverse(calledMethods); - final List methods = new ArrayList(calledMethods); - - // add method to the calledMethods so we can include in this list - methods.add(methodModel); - final Set fieldAssignments = new HashSet(); - - final Set fieldAccesses = new HashSet(); - - for (final MethodModel methodModel : methods) { - - // Record which pragmas we need to enable - if (methodModel.requiresDoublePragma()) { - usesDoubles = true; - if (logger.isLoggable(Level.FINE)) { - logger.fine("Enabling doubles on " + methodModel.getName()); - } - - } - if (methodModel.requiresByteAddressableStorePragma()) { - usesByteWrites = true; - if (logger.isLoggable(Level.FINE)) { - logger.fine("Enabling byte addressable on " + methodModel.getName()); - } - } - - for (Instruction instruction = methodModel.getPCHead(); instruction != null; instruction = instruction.getNextPC()) { - - if (instruction instanceof AssignToArrayElement) { - final AssignToArrayElement assignment = (AssignToArrayElement) instruction; - - final Instruction arrayRef = assignment.getArrayRef(); - // AccessField here allows instance and static array refs - if (arrayRef instanceof I_GETFIELD) { - final I_GETFIELD getField = (I_GETFIELD) arrayRef; - final FieldEntry field = getField.getConstantPoolFieldEntry(); - final String assignedArrayFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - arrayFieldAssignments.add(assignedArrayFieldName); - referencedFieldNames.add(assignedArrayFieldName); - - } - } else if (instruction instanceof AccessArrayElement) { - final AccessArrayElement access = (AccessArrayElement) instruction; - - final Instruction arrayRef = access.getArrayRef(); - // AccessField here allows instance and static array refs - if (arrayRef instanceof I_GETFIELD) { - final I_GETFIELD getField = (I_GETFIELD) arrayRef; - final FieldEntry field = getField.getConstantPoolFieldEntry(); - final String accessedArrayFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - arrayFieldAccesses.add(accessedArrayFieldName); - referencedFieldNames.add(accessedArrayFieldName); - - } - } else if (instruction instanceof I_ARRAYLENGTH) { - Instruction child = instruction.getFirstChild(); - while(child instanceof I_AALOAD) { - child = child.getFirstChild(); - } - if (!(child instanceof AccessField)) { - throw new ClassParseException(ClassParseException.TYPE.LOCALARRAYLENGTHACCESS); - } - final AccessField childField = (AccessField) child; - final String arrayName = childField.getConstantPoolFieldEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - arrayFieldArrayLengthUsed.add(arrayName); - if (logger.isLoggable(Level.FINE)) { - logger.fine("Noted arraylength in " + methodModel.getName() + " on " + arrayName); - } - } else if (instruction instanceof AccessField) { - final AccessField access = (AccessField) instruction; - final FieldEntry field = access.getConstantPoolFieldEntry(); - final String accessedFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - fieldAccesses.add(accessedFieldName); - referencedFieldNames.add(accessedFieldName); - - final String signature = field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - if (logger.isLoggable(Level.FINE)) { - logger.fine("AccessField field type= " + signature + " in " + methodModel.getName()); - } - - // Add the class model for the referenced obj array - if (signature.startsWith("[L")) { - // Turn [Lcom/amd/javalabs/opencl/demo/DummyOOA; into com.amd.javalabs.opencl.demo.DummyOOA for example - final String className = (signature.substring(2, signature.length() - 1)).replace("/", "."); - final ClassModel arrayFieldModel = getOrUpdateAllClassAccesses(className); - if (arrayFieldModel != null) { - final Class memberClass = arrayFieldModel.getClassWeAreModelling(); - final int modifiers = memberClass.getModifiers(); - if (!Modifier.isFinal(modifiers)) { - throw new ClassParseException(ClassParseException.TYPE.ACCESSEDOBJECTNONFINAL); - } - - final ClassModel refModel = objectArrayFieldsClasses.get(className); - if (refModel == null) { - - // Verify no other member with common parent - for (final ClassModel memberObjClass : objectArrayFieldsClasses.values()) { - ClassModel superModel = memberObjClass; - while (superModel != null) { - if (superModel.isSuperClass(memberClass)) { - throw new ClassParseException(ClassParseException.TYPE.ACCESSEDOBJECTFIELDNAMECONFLICT); - } - superModel = superModel.getSuperClazz(); - } - } - - objectArrayFieldsClasses.put(className, arrayFieldModel); - if (logger.isLoggable(Level.FINE)) { - logger.fine("adding class to objectArrayFields: " + className); - } - } - } - } else { - final String className = (field.getClassEntry().getNameUTF8Entry().getUTF8()).replace("/", "."); - // Look for object data member access - if (!className.equals(getClassModel().getClassWeAreModelling().getName()) - && (getFieldFromClassHierarchy(getClassModel().getClassWeAreModelling(), accessedFieldName) == null)) { - updateObjectMemberFieldAccesses(className, field); - } - } - - } else if (instruction instanceof AssignToField) { - final AssignToField assignment = (AssignToField) instruction; - final FieldEntry field = assignment.getConstantPoolFieldEntry(); - final String assignedFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - fieldAssignments.add(assignedFieldName); - referencedFieldNames.add(assignedFieldName); - - final String className = (field.getClassEntry().getNameUTF8Entry().getUTF8()).replace("/", "."); - // Look for object data member access - if (!className.equals(getClassModel().getClassWeAreModelling().getName()) - && (getFieldFromClassHierarchy(getClassModel().getClassWeAreModelling(), assignedFieldName) == null)) { - updateObjectMemberFieldAccesses(className, field); - } else { - - if ((!Config.enablePUTFIELD) && methodModel.methodUsesPutfield() && !methodModel.isSetter()) { - throw new ClassParseException(ClassParseException.TYPE.ACCESSEDOBJECTONLYSUPPORTSSIMPLEPUTFIELD); - } - - } - - } - else if (instruction instanceof I_INVOKEVIRTUAL) { - final I_INVOKEVIRTUAL invokeInstruction = (I_INVOKEVIRTUAL) instruction; - MethodModel invokedMethod = invokeInstruction.getMethod(); - FieldEntry getterField = getSimpleGetterField(invokedMethod); - if (getterField != null) { - referencedFieldNames.add(getterField.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - } - else { - final MethodEntry methodEntry = invokeInstruction.getConstantPoolMethodEntry(); - if (Kernel.isMappedMethod(methodEntry)) { //only do this for intrinsics - - if (Kernel.usesAtomic32(methodEntry)) { - setRequiresAtomics32Pragma(true); - } - - final Arg methodArgs[] = methodEntry.getArgs(); - if ((methodArgs.length > 0) && methodArgs[0].isArray()) { //currently array arg can only take slot 0 - final Instruction arrInstruction = invokeInstruction.getArg(0); - if (arrInstruction instanceof AccessField) { - final AccessField access = (AccessField) arrInstruction; - final FieldEntry field = access.getConstantPoolFieldEntry(); - final String accessedFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - arrayFieldAssignments.add(accessedFieldName); - referencedFieldNames.add(accessedFieldName); - } - else { - throw new ClassParseException(ClassParseException.TYPE.ACCESSEDOBJECTSETTERARRAY); - } - } - } - - } - } - } - } - - for (final String referencedFieldName : referencedFieldNames) { - - try { - final Class clazz = classModel.getClassWeAreModelling(); - final Field field = getFieldFromClassHierarchy(clazz, referencedFieldName); - if (field != null) { - referencedFields.add(field); - final ClassModelField ff = classModel.getField(referencedFieldName); - assert ff != null : "ff should not be null for " + clazz.getName() + "." + referencedFieldName; - referencedClassModelFields.add(ff); - } - } catch (final SecurityException e) { - e.printStackTrace(); - } - } - - // Build data needed for oop form transforms if necessary - if (!objectArrayFieldsClasses.keySet().isEmpty()) { - - for (final ClassModel memberObjClass : objectArrayFieldsClasses.values()) { - - // At this point we have already done the field override safety check, so - // add all the superclass fields into the kernel member class to be - // sorted by size and emitted into the struct - ClassModel superModel = memberObjClass.getSuperClazz(); - while (superModel != null) { - if (logger.isLoggable(Level.FINEST)) { - logger.finest("adding = " + superModel.getClassWeAreModelling().getName() + " fields into " - + memberObjClass.getClassWeAreModelling().getName()); - } - memberObjClass.getStructMembers().addAll(superModel.getStructMembers()); - superModel = superModel.getSuperClazz(); - } - } - - // Sort fields of each class biggest->smallest - final Comparator fieldSizeComparator = new Comparator(){ - @Override public int compare(FieldEntry aa, FieldEntry bb) { - final String aType = aa.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - final String bType = bb.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - - // Booleans get converted down to bytes - final int aSize = InstructionSet.TypeSpec.valueOf(aType.equals("Z") ? "B" : aType).getSize(); - final int bSize = InstructionSet.TypeSpec.valueOf(bType.equals("Z") ? "B" : bType).getSize(); - - if (logger.isLoggable(Level.FINEST)) { - logger.finest("aType= " + aType + " aSize= " + aSize + " . . bType= " + bType + " bSize= " + bSize); - } - - // Note this is sorting in reverse order so the biggest is first - if (aSize > bSize) { - return -1; - } else if (aSize == bSize) { - return 0; - } else { - return 1; - } - } - }; - - for (final ClassModel c : objectArrayFieldsClasses.values()) { - final ArrayList fields = c.getStructMembers(); - if (fields.size() > 0) { - Collections.sort(fields, fieldSizeComparator); - - // Now compute the total size for the struct - int totalSize = 0; - int alignTo = 0; - - for (final FieldEntry f : fields) { - // Record field offset for use while copying - // Get field we will copy out of the kernel member object - final Field rfield = getFieldFromClassHierarchy(c.getClassWeAreModelling(), f.getNameAndTypeEntry() - .getNameUTF8Entry().getUTF8()); - - c.getStructMemberOffsets().add(UnsafeWrapper.objectFieldOffset(rfield)); - - final String fType = f.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - //c.getStructMemberTypes().add(TypeSpec.valueOf(fType.equals("Z") ? "B" : fType)); - c.getStructMemberTypes().add(TypeSpec.valueOf(fType)); - final int fSize = TypeSpec.valueOf(fType.equals("Z") ? "B" : fType).getSize(); - if (fSize > alignTo) { - alignTo = fSize; - } - - totalSize += fSize; - if (logger.isLoggable(Level.FINEST)) { - logger.finest("Field = " + f.getNameAndTypeEntry().getNameUTF8Entry().getUTF8() + " size=" + fSize - + " totalSize=" + totalSize); - } - } - - // compute total size for OpenCL buffer - int totalStructSize = 0; - if ((totalSize % alignTo) == 0) { - totalStructSize = totalSize; - } else { - // Pad up if necessary - totalStructSize = ((totalSize / alignTo) + 1) * alignTo; - } - c.setTotalStructSize(totalStructSize); - } - } - } - - } - } - - private boolean noCL(ClassModelMethod m) { - boolean found = m.getClassModel().getNoCLMethods().contains(m.getName()); - return found; - } - - private FieldEntry getSimpleGetterField(MethodModel method) { - return method.getAccessorVariableFieldEntry(); - } - - public boolean shouldFallback() { - return (fallback); - } - - public List getReferencedClassModelFields() { - return (referencedClassModelFields); - } - - public List getReferencedFields() { - return (referencedFields); - } - - public List getCalledMethods() { - return calledMethods; - } - - public Set getReferencedFieldNames() { - return (referencedFieldNames); - } - - public Set getArrayFieldAssignments() { - return (arrayFieldAssignments); - } - - public Set getArrayFieldAccesses() { - return (arrayFieldAccesses); - } - - public Set getArrayFieldArrayLengthUsed() { - return (arrayFieldArrayLengthUsed); - } - - public MethodModel getMethodModel() { - return (methodModel); - } - - public ClassModel getClassModel() { - return (classModel); - } - - /* - * Return the best call target MethodModel by looking in the class hierarchy - * @param _methodEntry MethodEntry for the desired target - * @return the fully qualified name such as "com_amd_javalabs_opencl_demo_PaternityTest$SimpleKernel__actuallyDoIt" - */ - public MethodModel getCallTarget(MethodEntry _methodEntry, boolean _isSpecial) { - ClassModelMethod target = getClassModel().getMethod(_methodEntry, _isSpecial); - boolean isMapped = Kernel.isMappedMethod(_methodEntry); - - if (logger.isLoggable(Level.FINE) && (target == null)) { - logger.fine("Did not find call target: " + _methodEntry + " in " + getClassModel().getClassWeAreModelling().getName() - + " isMapped=" + isMapped); - } - - if (target == null) { - // Look for member obj accessor calls - for (final ClassModel memberObjClass : objectArrayFieldsClasses.values()) { - final String entryClassNameInDotForm = _methodEntry.getClassEntry().getNameUTF8Entry().getUTF8().replace('/', '.'); - if (entryClassNameInDotForm.equals(memberObjClass.getClassWeAreModelling().getName())) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Searching for call target: " + _methodEntry + " in " - + memberObjClass.getClassWeAreModelling().getName()); - } - - target = memberObjClass.getMethod(_methodEntry, false); - if (target != null) { - break; - } - } - } - } - - if (target != null) { - for (final MethodModel m : calledMethods) { - if (m.getMethod() == target) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("selected from called methods = " + m.getName()); - } - return m; - } - } - } - - // Search for static calls to other classes - for (MethodModel m : calledMethods) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Searching for call target: " + _methodEntry + " in " + m.getName()); - } - if (m.getMethod().getName().equals(_methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()) - && m.getMethod().getDescriptor().equals(_methodEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8())) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found " + m.getMethod().getClassModel().getClassWeAreModelling().getName() + "." - + m.getMethod().getName() + " " + m.getMethod().getDescriptor()); - } - return m; - } - } - - assert target == null : "Should not have missed a method in calledMethods"; - - return null; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/MethodModel.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/MethodModel.java deleted file mode 100644 index c6d7fc9b..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/model/MethodModel.java +++ /dev/null @@ -1,1730 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - - */ -package com.amd.aparapi.internal.model; - -import com.amd.aparapi.*; -import com.amd.aparapi.internal.exception.*; -import com.amd.aparapi.internal.instruction.*; -import com.amd.aparapi.internal.instruction.InstructionPattern.*; -import com.amd.aparapi.internal.instruction.InstructionSet.*; -import com.amd.aparapi.internal.model.ClassModel.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.MethodReferenceEntry.*; -import com.amd.aparapi.internal.reader.*; - -import java.util.*; -import java.util.Map.Entry; -import java.util.logging.*; - -public class MethodModel{ - - private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - private ExpressionList expressionList; - - private ClassModelMethod method; - - /** - True is an indication to use the fp64 pragma - */ - private boolean usesDoubles; - - /** - True is an indication to use the byte addressable store pragma - */ - private boolean usesByteWrites; - - private boolean methodIsGetter; - - private boolean methodIsSetter; - - private boolean methodIsPrivateMemoryGetter = false; - - // Only setters can use putfield - private boolean usesPutfield; - - private FieldEntry accessorVariableFieldEntry; - - private boolean noCL = false; - - public boolean isGetter() { - return methodIsGetter; - } - - public boolean isSetter() { - return methodIsSetter; - } - - public boolean methodUsesPutfield() { - return usesPutfield; - } - - public boolean isNoCL() { - return noCL; - } - - - public boolean isPrivateMemoryGetter() { - return methodIsPrivateMemoryGetter; - } - - public ClassModelMethod getMethod() { - return method; - } - - public FieldEntry getAccessorVariableFieldEntry() { - return accessorVariableFieldEntry; - } - - private final Set calledMethods = new HashSet(); - - public Set getCalledMethods() { - return calledMethods; - } - - public void checkForRecursion(Set transitiveCalledMethods) throws AparapiException { - - if (transitiveCalledMethods.contains(this)) { - throw new ClassParseException(ClassParseException.TYPE.RECURSION, getName()); - } - - // Add myself - transitiveCalledMethods.add(this); - - // For each callee, send him a copy of the call chain up to this method - final Iterator cmi = getCalledMethods().iterator(); - while (cmi.hasNext()) { - final MethodModel next = cmi.next(); - next.checkForRecursion(transitiveCalledMethods); - } - - // Done examining this call path, remove myself - transitiveCalledMethods.remove(this); - } - - /** - * After we have folded the top level instructions this root list will contain a list of all of the 'root' instructions (stores/loops/conditionals) - * We are going to build a linked list. Here we track the head and tail - */ - private Instruction pcTail = null; - - private Instruction pcHead = null; - - /** - * Look at each instruction for use of long/double or byte writes which - * require pragmas to be used in the OpenCL source - * - */ - public void setRequiredPragmas(Instruction instruction) { - final boolean setDouble = instruction.getByteCode().usesDouble(); - if (setDouble) { - usesDoubles = true; - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found D on =" + instruction + " in " + getName()); - } - } - - if ((instruction instanceof I_BASTORE) || (instruction instanceof I_CASTORE /* || instruction instanceof I_SASTORE */)) { - usesByteWrites = true; - if (usesByteWrites && logger.isLoggable(Level.FINE)) { - logger.fine("Found Byte Addressable Store on =" + instruction + " in " + getName()); - } - } - } - - public boolean requiresDoublePragma() { - return usesDoubles; - } - - public boolean requiresByteAddressableStorePragma() { - return usesByteWrites; - } - - /** - * Create a linked list of instructions (from pcHead to pcTail). - * - * Returns a map of int (pc) to Instruction which to allow us to quickly get from a bytecode offset to the appropriate instruction. - * - * Note that not all int values from 0 to code.length values will map to a valid instruction, if pcMap.get(n) == null then this implies - * that 'n' is not the start of an instruction - * - * So either pcMap.get(i)== null or pcMap.get(i).getThisPC()==i - * - * @return Map the returned pc to Instruction map - */ - public Map createListOfInstructions() throws ClassParseException { - final Map pcMap = new LinkedHashMap(); - final byte[] code = method.getCode(); - - // We create a byteReader for reading the bytes from the code array - final ByteReader codeReader = new ByteReader(code); - while (codeReader.hasMore()) { - // Create an instruction from code reader's current position - final int pc = codeReader.getOffset(); - final Instruction instruction = InstructionSet.ByteCode.create(this, codeReader); - - if ((!Config.enablePUTFIELD) && (instruction instanceof I_PUTFIELD)) { - // Special case putfield handling to allow object setter processing - // and bail later if necessary - //throw new ClassParseException("We don't support putfield instructions"); - usesPutfield = true; - } - - if ((!Config.enableARETURN) && (instruction instanceof I_ARETURN)) { - throw new ClassParseException(instruction, ClassParseException.TYPE.ARRAY_RETURN); - } - - if ((!Config.enablePUTSTATIC) && (instruction instanceof I_PUTSTATIC)) { - throw new ClassParseException(instruction, ClassParseException.TYPE.PUTFIELD); - } - - if ((!Config.enableINVOKEINTERFACE) && (instruction instanceof I_INVOKEINTERFACE)) { - throw new ClassParseException(instruction, ClassParseException.TYPE.INVOKEINTERFACE); - } - - if ((!Config.enableGETSTATIC) && (instruction instanceof I_GETSTATIC)) { - throw new ClassParseException(instruction, ClassParseException.TYPE.GETSTATIC); - } - - if ((!Config.enableATHROW) && (instruction instanceof I_ATHROW)) { - throw new ClassParseException(instruction, ClassParseException.TYPE.ATHROW); - } - - if ((!Config.enableMONITOR) && ((instruction instanceof I_MONITORENTER) || (instruction instanceof I_MONITOREXIT))) { - throw new ClassParseException(instruction, ClassParseException.TYPE.SYNCHRONIZE); - } - - if ((!Config.enableNEW) && (instruction instanceof New)) { - throw new ClassParseException(instruction, ClassParseException.TYPE.NEW); - } - - if (instruction instanceof I_AASTORE) { - throw new ClassParseException(instruction, ClassParseException.TYPE.ARRAYALIAS); - } - - if ((!Config.enableSWITCH) && ((instruction instanceof I_LOOKUPSWITCH) || (instruction instanceof I_TABLESWITCH))) { - throw new ClassParseException(instruction, ClassParseException.TYPE.SWITCH); - } - - if (!Config.enableMETHODARRAYPASSING) { - if (instruction instanceof MethodCall) { - final MethodCall methodCall = (MethodCall) instruction; - - final MethodReferenceEntry methodReferenceEntry = methodCall.getConstantPoolMethodEntry(); - if (!Kernel.isMappedMethod(methodReferenceEntry)) { // we will allow trusted methods to violate this rule - for (final Arg arg : methodReferenceEntry.getArgs()) { - if (arg.isArray()) { - throw new ClassParseException(instruction, ClassParseException.TYPE.METHODARRAYARG); - } - } - } - } - } - - setRequiredPragmas(instruction); - - pcMap.put(pc, instruction); - - // list maintenance, make this the pcHead if pcHead is null - if (pcHead == null) { - pcHead = instruction; - } - - // extend the list of instructions here we make the new instruction point to previous tail - instruction.setPrevPC(pcTail); - - // if tail exists (not the first instruction in the list) link it to the new instruction - if (pcTail != null) { - pcTail.setNextPC(instruction); - } - - // now move the tail along - pcTail = instruction; - } - - return (pcMap); - } - - /** - * Here we connect the branch nodes to the instruction that they branch to. - *

      - * Each branch node contains a 'target' field indended to reference the node that the branch targets. Each instruction also contain four seperate lists of branch nodes that reference it. - * These lists hold forwardConditional, forwardUnconditional, reverseConditional and revereseUnconditional branches that reference it. - *

      - * So assuming that we had a branch node at pc offset 100 which represented 'goto 200'. - *

      - * Following this call the branch node at pc offset 100 will have a 'target' field which actually references the instruction at pc offset 200, and the instruction at pc offset 200 will - * have the branch node (at 100) added to it's forwardUnconditional list. - * - * @see InstructionSet.Branch#getTarget() - */ - public void buildBranchGraphs(Map pcMap) { - for (Instruction instruction = pcHead; instruction != null; instruction = instruction.getNextPC()) { - if (instruction.isBranch()) { - final Branch branch = instruction.asBranch(); - final Instruction targetInstruction = pcMap.get(branch.getAbsolute()); - branch.setTarget(targetInstruction); - } - } - } - - /** - * Javac optimizes some branches to avoid goto->goto, branch->goto etc. - * - * This method specifically deals with reverse branches which are the result of such optimisations. - * - *

      -    * 
      -    * 
      - * - * - * - */ - public void deoptimizeReverseBranches() { - - for (Instruction instruction = pcHead; instruction != null; instruction = instruction.getNextPC()) { - if (instruction.isBranch()) { - final Branch branch = instruction.asBranch(); - if (branch.isReverse()) { - final Instruction target = branch.getTarget(); - final LinkedList list = target.getReverseUnconditionalBranches(); - if ((list != null) && (list.size() > 0) && (list.get(list.size() - 1) != branch)) { - final Branch unconditional = list.get(list.size() - 1).asBranch(); - branch.retarget(unconditional); - - } - } - } - } - } - - /** - * DUP family of instructions break our stack unwind model (whereby we treat instructions like the oeprands they create/consume). - * - *

      - * Here we replace DUP style instructions with a 'mock' instruction which 'clones' the effect of the instruction. This would be invalid to execute but is useful - * to replace the DUP with a 'pattern' which it simulates. This allows us to later apply transforms to represent the original code. - * - *

      - * An example might be the bytecode for the following sequence. - *

      -    *    results[10]++; 
      -         return
      -    * 
      - * - * Which results in the following bytecode - *
      -      0:   aload_0       // reference through 'this' to get 
      -      1:   getfield      // field 'results' which is an array of int
      -      4:   bipush  10    // push the array index
      -      6:   dup2          // dreaded dup2 we'll come back here
      -      7:   iaload        // ignore for the moment.
      -      8:   iconst_1
      -      9:   iadd
      -      10:  iastore
      -      11:  return
      -    * 
      - * - * First we need to know what the stack will look like before the dup2 is encountered. - * Using our folding technique we represent the first two instructions inside () - * - *
      
      -           getfield (aload_0     // result in the array field reference on stack
      -           bipush  10            // the array index
      -           dup2                  // dreaded dup2 we'll come back here
      -    * 
      - * - * The dup2 essentially copies the top two elements on the stack. So we emulate this by replacing the dup2 with clones of the instructions which would reinstate the same stack state. - *

      - * So after the dup2 transform we end up with:- - *

      
      -          getfield (aload_0)     // result in the array field reference on stack
      -          bipush  10             // the array index
      -          {getfield (aload_0)}   // result in the array field reference on stack
      -          {bipush 10}            // the array index
      -    * 
      - * - * So carrying on lets look at the iaload which consumes two operands (the index and the array field reference) and creates one (the result of an array access) - * - *
      
      -          getfield (aload_0)     // result in the array field reference on stack
      -          bipush  10             // the array index
      -          {getfield (aload_0)}   // result in the array field reference on stack
      -          {bipush  10}           // the array index
      -          iaload 
      -    * 
      - * - * So we now have - * - *
      
      -          getfield (aload_0)                        // result in the array field reference on stack
      -          bipush  10                                // the array index
      -          iaload ({getfield(aload_0), {bipush 10})  // results in the array element on the stack
      -          iconst
      -          iadd
      -    * 
      - * - * And if you are following along the iadd will fold the previous two stack entries essentially pushing the result of - * results[10]+1 on the stack. - * - *
      
      -          getfield (aload_0)                                        // result in the array field reference on stack
      -          bipush  10                                                // the array index
      -          iadd (iaload ({getfield(aload_0), {bipush 10}, iconst_1)  // push of results[10]+1 
      -    * 
      - * Then the final istore instruction which consumes 3 stack operands (the field array reference, the index and the value to assign). - * - *

      - * Which results in - *

       
      -          istore (getfield (aload_0), bipush 10,  iadd (iaload ({getfield(aload_0), {bipush 10}, iconst_1)) // results[10] = results[10+1]
      -    * 
      - * - * Where results[10] = results[10+1] is the long-hand form of the results[10]++ - * and will be transformed by one of the 'inc' transforms to the more familiar form a little later. - * - * @param _expressionList - * @param _instruction - * @throws ClassParseException - */ - public void txFormDups(ExpressionList _expressionList, final Instruction _instruction) throws ClassParseException { - if (_instruction instanceof I_DUP) { - Instruction e = _expressionList.getTail(); - while (!e.producesStack()) { - e = e.getPrevExpr(); - } - - _expressionList.add(new CloneInstruction(this, e)); - System.out.println("clone of " + e); - } else if (_instruction instanceof I_DUP2) { - Instruction e = _expressionList.getTail(); - while (!e.producesStack()) { - e = e.getPrevPC(); - } - - final Instruction clone = e; - e = e.getPrevExpr(); - while (!e.producesStack()) { - e = e.getPrevExpr(); - } - - _expressionList.add(new CloneInstruction(this, e)); - _expressionList.add(new CloneInstruction(this, clone)); - } else if (_instruction instanceof I_DUP_X1) { - - Instruction e = _expressionList.getTail(); - - while (!e.producesStack()) { - e = e.getPrevExpr(); - } - final Instruction clone1 = new CloneInstruction(this, e); - e = e.getPrevExpr(); - while (!e.producesStack()) { - e = e.getPrevExpr(); - } - - _expressionList.insertBetween(e.getPrevExpr(), e, clone1); - - } else if (_instruction instanceof I_DUP_X2) { - - // dup_x2 duplicates top operand and jams a copy in 3 down from the top - // ...word3, word2, word1 => ...word1, word3, word2, word1 - - Instruction e = _expressionList.getTail(); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found DUP_X2 prev=" + e.getPrevExpr() + " e=" + e + " curr=" + _instruction); - } - - // Get the previous instr to write to stack "word1" - while (!e.producesStack()) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("DUP_X2 skipping to find write: e=" + e); - } - e = e.getPrevExpr(); - } - - // Clone it, this will replace the dup action - final Instruction clone1 = new CloneInstruction(this, e); - - if (logger.isLoggable(Level.FINE)) { - logger.fine("DUP_X2 cloning: clone1=" + clone1); - } - - // Skip over 2 earlier writes to stack and capture 3rd one - e = e.getPrevExpr(); - - for (int i = 0; i < 2;) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("DUP_X2 skipping to find insert: e=" + e); - } - if (e.producesStack()) { - i++; - } - if (i < 2) { - e = e.getPrevExpr(); - } - } - - if (logger.isLoggable(Level.FINE)) { - logger.fine("DUP_X2 insert: prev=" + e.getPrevExpr() + " e=" + e + " clone=" + clone1); - } - - // Add our clone in between those two writes - _expressionList.insertBetween(e.getPrevExpr(), e, clone1); - - } else if (_instruction instanceof DUP) { - - throw new ClassParseException(_instruction, ClassParseException.TYPE.UNSUPPORTEDBYTECODE); - } - - } - - /** - * Try to fold the instructions into higher level structures. - * At the end we have a folded instruction tree with 'roots' containing the - * top level branches (stores mostly) - * @throws ClassParseException - */ - - void foldExpressions() throws ClassParseException { - - // we also populate a second list of expressions held between headTail.head and headTail.tail - - for (Instruction instruction = pcHead; instruction != null; instruction = instruction.getNextPC()) { - - // Here we are going to extract loop/if/structure from the list that we have collected so far in the roots list - // We are looking for a new instruction which is the target of a forward branch (this is why we collected forward branch counts) we only enter this loop - // however if roots list is not empty and it's tail is not a forward branch. - - expressionList.foldComposite(instruction); - - // If we find a DUP then we need to txform the DUP into a set of clones on the xpressionlist - if (instruction instanceof DUP) { - txFormDups(expressionList, instruction); - } else { - if (instruction.consumesStack()) { - // If instruction consumes n operands, then walk back until we find n roots on the xpressionlist that produce stack. - // we will user this cursor to track our progress - Instruction cursor = expressionList.getTail(); - - // set this flag if we pass something that does not produce stack - boolean foundNonStackProducer = false; - - // operandStart will points to the beginning of the list of consumed operands - Instruction operandStart = null; - - // back up from root tail past each instruction expecting to create a consumed operand for this instruction - for (int i = 0; i < instruction.getStackConsumeCount();) { - if (!cursor.producesStack()) { - foundNonStackProducer = true; // we spotted an instruction that does not consume stack. So we need to analyze this - } else { - i++; - } - operandStart = cursor; - cursor = cursor.getPrevExpr(); - } - - // if we found something that did not consume stack we probably have an expression with a side effect - - if (foundNonStackProducer) { - // Something like - // a = b++; - // foo(i++); - // return(a++); - // so we need to check for common transformations - applyTransformations(expressionList, instruction, operandStart); - } - - // cut the tail off and give it to instruction - final Instruction childTail = expressionList.getTail(); - final Instruction childHead = expressionList.createList(cursor); - - instruction.setChildren(childHead, childTail); - } - // add this instruction to the tail of roots - expressionList.add(instruction); - } - } - } - - InstructionTransformer[] transformers = new InstructionTransformer[] { - - new InstructionTransformer("long hand post increment of field"){ - - /** - * - *
      
      -             *                 A                                     A
      -             *                 |                                     |
      -             *         +1, 0  getfield                            |
      -             *                 |              / getfield         Increment(fieldref++)
      -             *          0, 0  putfield - iadd                     |
      -             *                 |              \ i_const_1            |
      -             *                 B                                     B
      -             *                 
      -             *                 A                                     A
      -             *                 |                                     |
      -             *         +1, 0  getfield                            |
      -             *                 |                      / getfield  Increment(fieldRef++)
      -             *          0, 0  putfield - i2 iadd               |
      -             *                 |                      \ i_const_1    |
      -             *                 B                                     B
      -             * 
      - */ - - @Override public Instruction transform(final ExpressionList _expressionList, final Instruction i) { - InstructionMatch result = null; - - if (Config.enablePUTFIELD - && (result = InstructionPattern.accessInstanceField.matches(i, InstructionPattern.assignToInstanceField)).ok) { - - final Instruction accessRaw = i; - final Instruction assignRaw = i.getNextExpr(); - final AccessInstanceField access = (AccessInstanceField) i.getReal(); - final AssignToInstanceField assign = (AssignToInstanceField) i.getNextExpr().getReal(); - if (access.getConstantPoolFieldIndex() == assign.getConstantPoolFieldIndex()) { - Instruction child = ((Instruction) assign).getFirstChild().getNextExpr(); - - if (child instanceof CastOperator) { - child = child.getFirstChild(); - } - if (child instanceof I_IADD) { - final I_IADD add = (I_IADD) child; - final Instruction lhs = add.getLhs(); - final Instruction rhs = add.getRhs(); - if (lhs instanceof AccessInstanceField) { - if (rhs instanceof I_ICONST_1) { - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, (Instruction) access, - true, false); - _expressionList.replaceInclusive(accessRaw, assignRaw, inc); - return (inc); - } - } - } - } - } - return (null); - } - }, - new InstructionTransformer("long hand pre increment of field"){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *                 |  / getfield                      |
      -             *         +1, -2 iadd                                   |
      -             *                 |  \ i_const_1                       Increment(++fieldref)
      -             *                 |                / getfield        |
      -             *         +0, -1 putfield -- iadd                    |
      -             *                 |                \ i_const_1          |
      -             *                 B                                     B
      -             * 
      - */ - - @Override public Instruction transform(final ExpressionList _expressionList, final Instruction i) { - InstructionMatch result = null; - if (Config.enablePUTFIELD - && (result = InstructionPattern.fieldPlusOne.matches(i, InstructionPattern.assignToInstanceField)).ok) { - - final Instruction topAddRaw = i; - final Instruction assignRaw = i.getNextExpr(); - final I_IADD topAdd = (I_IADD) i.getReal(); - final AssignToInstanceField assign = (AssignToInstanceField) i.getNextExpr().getReal(); - final Instruction topLhs = topAdd.getLhs().getReal(); - final Instruction topRhs = topAdd.getRhs().getReal(); - if (topLhs instanceof AccessInstanceField) { - final AccessInstanceField topLhsAccess = (AccessInstanceField) topLhs; - if (topRhs instanceof I_ICONST_1) { - if (topLhsAccess.getConstantPoolFieldIndex() == assign.getConstantPoolFieldIndex()) { - final Instruction child = ((Instruction) assign).getFirstChild().getNextExpr(); - final Instruction valueToAssign = assign.getValueToAssign(); - if (valueToAssign instanceof I_IADD) { - - final I_IADD add = (I_IADD) child; - final Instruction lhs = add.getLhs(); - final Instruction rhs = add.getRhs(); - if (lhs instanceof AccessInstanceField) { - if (rhs instanceof I_ICONST_1) { - - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, - (Instruction) topLhsAccess, true, true); - _expressionList.replaceInclusive(topAddRaw, assignRaw, inc); - - return (inc); - } - } - } - } - - } - } - - } - return (null); - } - }, - new InstructionTransformer("long hand post increment of local variable"){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *         +1, 0  iload<n>                               |
      -             *                 |              / iload<n>            Increment(varref<n>++)
      -             *          0, 0  istore<n> - iadd                       |
      -             *                 |              \ i_const_1            |
      -             *                 B                                     B
      -             *                 
      -             *                 A                                     A
      -             *                 |                                     |
      -             *         +1, 0  <t>load<n>                             |
      -             *                 |                      / iload<n>    Increment( varref<n>++)
      -             *          0, 0  <t>store<n> - i2<t> iadd               |
      -             *                 |                      \ i_const_1    |
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - // looking for a post increment on a local variable - InstructionMatch result = null; - if ((result = InstructionPattern.accessLocalVariable.matches(i, InstructionPattern.longHandIncLocalVariable)).ok) { - - final AccessLocalVariable access = (AccessLocalVariable) i; - final AssignToLocalVariable assign = (AssignToLocalVariable) i.getNextExpr(); - if (access.getLocalVariableTableIndex() == assign.getLocalVariableTableIndex()) { - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, (Instruction) access, true, false); - _expressionList.replaceInclusive((Instruction) access, (Instruction) assign, inc); - return (inc); - } - } - return (null); - } - - }, - new InstructionTransformer("long hand post decrement of local variable"){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *         +1, 0  iload                               |
      -             *                 |              / iload            Decrement(varref--)
      -             *          0, 0  istore - isub                       |
      -             *                 |              \ i_const_1            |
      -             *                 B                                     B
      -             *                 
      -             *                 A                                     A
      -             *                 |                                     |
      -             *         +1, 0  load                             |
      -             *                 |                      / iload    Decrement( varref--)
      -             *          0, 0  store - i2 isub               |
      -             *                 |                      \ i_const_1    |
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.accessLocalVariable.matches(i, InstructionPattern.longHandDecLocalVariable)).ok) { - - final AccessLocalVariable access = (AccessLocalVariable) i; - final AssignToLocalVariable assign = (AssignToLocalVariable) i.getNextExpr(); - if (access.getLocalVariableTableIndex() == assign.getLocalVariableTableIndex()) { - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, (Instruction) access, false, false); - _expressionList.replaceInclusive((Instruction) access, (Instruction) assign, inc); - return (inc); - } - } - return (null); - } - - }, - new InstructionTransformer("long hand pre increment of local variable"){ - /** - *
      -             *                 A                                     A
      -             *                 |              / iload             |
      -             *          0, 0  istore - iadd                       |
      -             *                 |              \ i_const_1            Increment(++varref)
      -             *         +1, 0  iload                               |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             *                 
      -             *                 A                                     A
      -             *                 |                      / iload     |
      -             *          0, 0  store - i2 iadd               |
      -             *                 |                      \ i_const_1    Increment( ++varref)
      -             *         +1, 0  load                             |
      -             *                 |                                     |
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - // pre increment local variable - if ((result = InstructionPattern.longHandIncLocalVariable.matches(i, InstructionPattern.accessLocalVariable)).ok) { - - final AssignToLocalVariable assign = (AssignToLocalVariable) i; - final AccessLocalVariable access = (AccessLocalVariable) i.getNextExpr(); - if (access.getLocalVariableTableIndex() == assign.getLocalVariableTableIndex()) { - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, (Instruction) access, true, true); - _expressionList.replaceInclusive((Instruction) assign, (Instruction) access, inc); - return (inc); - } - - } - - return (null); - } - - }, - new InstructionTransformer("inline assign - say for methiod call or logical expression - "){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *          0, 0  iload                               |
      -             *                 |       / iload               InlineAssign(istore, iload)
      -             *         +1, 0  istore                              |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - - if ((result = InstructionPattern.accessLocalVariable.matches(i, InstructionPattern.assignToLocalVariable)).ok) { - - final AccessLocalVariable access = (AccessLocalVariable) i; - if (access.getLocalVariableTableIndex() != 0) { // we don;t want to trap on 'this' references ;) - final AssignToLocalVariable assign = (AssignToLocalVariable) i.getNextExpr(); - if (access.getLocalVariableTableIndex() != assign.getLocalVariableTableIndex()) { - final InlineAssignInstruction inlineAssign = new InlineAssignInstruction(MethodModel.this, assign, - (Instruction) access); - _expressionList.replaceInclusive((Instruction) access, (Instruction) assign, inlineAssign); - return (inlineAssign); - } - } - } - - return (null); - } - - }, - new InstructionTransformer("pre increment of local variable"){ - - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.inc.matches(i, InstructionPattern.accessLocalVariable)).ok) { - - final I_IINC iinc = (I_IINC) i; - final AccessLocalVariable access = (AccessLocalVariable) i.getNextExpr(); - if (iinc.getLocalVariableTableIndex() == access.getLocalVariableTableIndex()) { - - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, (Instruction) access, - iinc.isInc(), true); - _expressionList.replaceInclusive(iinc, (Instruction) access, inc); - return (inc); - } - } - return (null); - } - - }, - new InstructionTransformer("post increment of local variable"){ - - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - - if ((result = InstructionPattern.accessLocalVariable.matches(i, InstructionPattern.inc)).ok) { - - final AccessLocalVariable access = (AccessLocalVariable) i; - final I_IINC iinc = (I_IINC) i.getNextExpr(); - - if (iinc.getLocalVariableTableIndex() == access.getLocalVariableTableIndex()) { - - final IncrementInstruction inc = new IncrementInstruction(MethodModel.this, (Instruction) access, - iinc.isInc(), false); - _expressionList.replaceInclusive((Instruction) access, iinc, inc); - return (inc); - } - } - return (null); - } - - }, - new InstructionTransformer("inline assign of local variable (with cast)"){ - /** - *
      -             *                 A                                     A
      -             *                 |      /exp                           |
      -             *          0, 0  cast                                |
      -             *                 |       / iload               InlineAssign(istore, cast)
      -             *         +1, 0  istore                              |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.cast.matches(i, InstructionPattern.assignToLocalVariable)).ok) { - - final CastOperator cast = (CastOperator) i; - - final AssignToLocalVariable assign = (AssignToLocalVariable) i.getNextExpr(); - - final InlineAssignInstruction inlineAssign = new InlineAssignInstruction(MethodModel.this, assign, cast); - _expressionList.replaceInclusive((Instruction) cast, (Instruction) assign, inlineAssign); - return (inlineAssign); - - } - return (null); - } - - }, - new InstructionTransformer("field array element pre increment with nested index (local variable) pre increment"){ - /** - *
      -             *                 A                                     A
      -             *                 |            / getfield - aload       |
      -             *                 |    / iaload                         |
      -             *                 |   /        \ i_aload1               |
      -             *                iadd                                   |                            
      -             *                 |   \ iconst 1                        |
      -             *                 |                                     |
      -             *                 |                                  FieldArrayElementIncrement(pre)
      -             *                 |    / getfield - aload               |
      -             *                iastore -  iload                       |                            
      -             *                 |    \ [fieldArrayElementPlusOne]     |
      -             *                 |                                     |       
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.fieldArrayElementPlusOne.matches(i, - InstructionPattern.longHandFieldArrayElementIncrement)).ok) { - - final Instruction addRaw = i; - final Instruction assignArrayRaw = i.getNextExpr(); - // I_IADD add = (I_IADD) addRaw.getReal(); - final AssignToArrayElement assignArray = (AssignToArrayElement) assignArrayRaw.getReal(); - final FieldArrayElementIncrement inlineAssign = new FieldArrayElementIncrement(MethodModel.this, assignArray, - true, true); - _expressionList.replaceInclusive(addRaw, assignArrayRaw, inlineAssign); - return (inlineAssign); - - } - - return (null); - } - - }, - new InstructionTransformer("field array element pre decrement with nested index (local variable) pre decrement"){ - /** - *
      -             *                 A                                     A
      -             *                 |            / getfield - aload       |
      -             *                 |    / iaload                         |
      -             *                 |   /        \ i_aload1               |
      -             *                isub                                   |                            
      -             *                 |   \ iconst 1                        |
      -             *                 |                                     |
      -             *                 |                                  FieldArrayElementIncrement(pre)
      -             *                 |    / getfield - aload               |
      -             *                iastore -  iload                       |                            
      -             *                 |    \ [fieldArrayElementMinusOne]    |
      -             *                 |                                     |       
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.fieldArrayElementMinusOne.matches(i, - InstructionPattern.longHandFieldArrayElementDecrement)).ok) { - - final Instruction subRaw = i; - final Instruction assignArrayRaw = i.getNextExpr(); - // I_IADD add = (I_IADD) addRaw.getReal(); - final AssignToArrayElement assignArray = (AssignToArrayElement) assignArrayRaw.getReal(); - final FieldArrayElementIncrement inlineAssign = new FieldArrayElementIncrement(MethodModel.this, assignArray, - false, true); - _expressionList.replaceInclusive(subRaw, assignArrayRaw, inlineAssign); - return (inlineAssign); - - } - return (null); - } - - }, - new InstructionTransformer("field array element post inccrement with nested index (local variable) "){ - - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.fieldArrayElementAccess.matches(i, - InstructionPattern.longHandFieldArrayElementIncrement)).ok) { - /** - *
      -                   *                 A                                     A              
      -                   *                 |     / getfield - aload           |
      -                   *                iaload                                 |
      -                   *                 |     \ i_load                        |                    
      -                   *                 |                                 FieldArrayElementIncrement(post)
      -                   *                 |    / getfield - aload               |
      -                   *                iastore -  iload                       |                            
      -                   *                 |    \ [fieldArrayElementPlusOne]     |
      -                   *                 |                                     |           
      -                   *                 B                                     B
      -                   *                 
      -                   *  
      -                   * 
      - */ - final Instruction accessArrayRaw = i; - final Instruction assignArrayRaw = i.getNextExpr(); - final AccessArrayElement accessArray = (AccessArrayElement) accessArrayRaw.getReal(); - final AssignToArrayElement assignArray = (AssignToArrayElement) assignArrayRaw.getReal(); - final AccessField accessField1 = (AccessField) accessArray.getArrayRef().getReal(); - final AccessField accessField2 = (AccessField) assignArray.getArrayRef().getReal(); - if (accessField1.getConstantPoolFieldIndex() == accessField2.getConstantPoolFieldIndex()) { - // we accessing the same field at least - //AccessLocalVariable accessLocalVariable1 = (AccessLocalVariable) accessArray.getArrayIndex().getReal(); - //AccessLocalVariable accessLocalVariable2 = (AccessLocalVariable) assignArray.getArrayIndex().getReal(); - // if (accessLocalVariable1.getLocalVariableTableIndex() == accessLocalVariable2.getLocalVariableTableIndex()) { - // and both arrays are referencing the array element using the same variable - final FieldArrayElementIncrement inlineAssign = new FieldArrayElementIncrement(MethodModel.this, assignArray, - true, false); - _expressionList.replaceInclusive(accessArrayRaw, assignArrayRaw, inlineAssign); - return (inlineAssign); - // } - } - - } - - return (null); - } - - }, - new InstructionTransformer("field array element post decrement with nested index (local variable) "){ - /** - *
      -             *                 A                                     A              
      -             *                 |     / getfield - aload           |
      -             *                iaload                                 |
      -             *                 |     \ i_load                        |                    
      -             *                 |                                 FieldArrayElementIncrement(post)
      -             *                 |    / getfield - aload               |
      -             *                iastore -  iload                       |                            
      -             *                 |    \ [fieldArrayElementMinusOne]    |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             *                 
      -             *  
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.fieldArrayElementAccess.matches(i, - InstructionPattern.longHandFieldArrayElementDecrement)).ok) { - - final Instruction accessArrayRaw = i; - final Instruction assignArrayRaw = i.getNextExpr(); - final AccessArrayElement accessArray = (AccessArrayElement) accessArrayRaw.getReal(); - final AssignToArrayElement assignArray = (AssignToArrayElement) assignArrayRaw.getReal(); - final AccessField accessField1 = (AccessField) accessArray.getArrayRef().getReal(); - final AccessField accessField2 = (AccessField) assignArray.getArrayRef().getReal(); - if (accessField1.getConstantPoolFieldIndex() == accessField2.getConstantPoolFieldIndex()) { - // we accessing the same field at least - final AccessLocalVariable accessLocalVariable1 = (AccessLocalVariable) accessArray.getArrayIndex().getReal(); - final AccessLocalVariable accessLocalVariable2 = (AccessLocalVariable) assignArray.getArrayIndex().getReal(); - if (accessLocalVariable1.getLocalVariableTableIndex() == accessLocalVariable2.getLocalVariableTableIndex()) { - // and both arrays are referencing the array element using the same variable - final FieldArrayElementIncrement inlineAssign = new FieldArrayElementIncrement(MethodModel.this, - assignArray, false, false); - _expressionList.replaceInclusive(accessArrayRaw, assignArrayRaw, inlineAssign); - return (inlineAssign); - } - } - - } - return (null); - } - - }, - new InstructionTransformer("inline assign (for method call or logical expression)"){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *          0, 0  invoke                              |
      -             *                 |       / invoke()               InlineAssign(istore, invoke)
      -             *         +1, 0  istore                              |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             * 
      - */ - - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.methodCall.matches(i, InstructionPattern.assignToLocalVariable)).ok) { - - final Instruction invoke = i; - - final AssignToLocalVariable assign = (AssignToLocalVariable) i.getNextExpr(); - - final InlineAssignInstruction inlineAssign = new InlineAssignInstruction(MethodModel.this, assign, invoke); - _expressionList.replaceInclusive(invoke, (Instruction) assign, inlineAssign); - return (inlineAssign); - - } - return (null); - } - - }, - new InstructionTransformer("incline assign from constant (method call or logical expression)"){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *          0, 0  invoke                              |
      -             *                 |       / invoke()               InlineAssign(istore, invoke)
      -             *         +1, 0  istore                              |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             * 
      - */ - - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - - if ((result = InstructionPattern.constant.matches(i, InstructionPattern.assignToLocalVariable)).ok) { - - final Instruction constant = i; - - final AssignToLocalVariable assign = (AssignToLocalVariable) i.getNextExpr(); - - final InlineAssignInstruction inlineAssign = new InlineAssignInstruction(MethodModel.this, assign, constant); - _expressionList.replaceInclusive(constant, (Instruction) assign, inlineAssign); - return (inlineAssign); - - } - - return (null); - } - - }, - new InstructionTransformer("inline array assignment as part of a method call"){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *          0, 0  invoke                              |
      -             *                 |       / invoke()               InlineAssign(istore, invoke)
      -             *         +1, 0  iastore                              |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.methodCall.matches(i, InstructionPattern.assignToArrayElement)).ok) { - - final Instruction invoke = i; - - final AssignToArrayElement assign = (AssignToArrayElement) i.getNextExpr(); - - final FieldArrayElementAssign inlineAssign = new FieldArrayElementAssign(MethodModel.this, assign, invoke); - _expressionList.replaceInclusive(invoke, assign, inlineAssign); - return (inlineAssign); - - } - - return (null); - } - - }, - new InstructionTransformer("inline array element increment as as part of a method call "){ - /** - *
      -             *                 A                                     A
      -             *                 |                                     |
      -             *          0, 0  invoke                              |
      -             *                 |       / invoke()               InlineAssign(istore, invoke)
      -             *         +1, 0  iastore                              |
      -             *                 |                                     |           
      -             *                 B                                     B
      -             * 
      - */ - @Override public Instruction transform(ExpressionList _expressionList, Instruction i) { - - InstructionMatch result = null; - if ((result = InstructionPattern.assignToArrayElement.matches(i, - InstructionPattern.longHandFieldArrayElementIncrement)).ok) { - - final Instruction invoke = i; - - final AssignToArrayElement assign = (AssignToArrayElement) i.getNextExpr(); - - final FieldArrayElementAssign inlineAssign = new FieldArrayElementAssign(MethodModel.this, assign, invoke); - _expressionList.replaceInclusive(invoke, assign, inlineAssign); - - return (inlineAssign); - - } - - return (null); - } - - } - - }; - - void applyTransformations(ExpressionList _expressionList, final Instruction _instruction, final Instruction _operandStart) - throws ClassParseException { - - if (logger.isLoggable(Level.FINE)) { - - System.out.println("We are looking at " + _instruction + " which wants to consume " + _instruction.getStackConsumeCount() - + " operands"); - } - boolean txformed = false; - - /** - * Here we look for multi-assigns - * i.e - * - * a=b=c=; - */ - if ((_instruction instanceof AssignToLocalVariable) && _operandStart.producesStack() - && (_operandStart.getNextExpr() instanceof AssignToLocalVariable)) { - final Instruction assignFirst = _operandStart.getNextExpr(); - Instruction assign = assignFirst; - int count = 0; - while ((assign != null) && (assign instanceof AssignToLocalVariable)) { - assign = assign.getNextExpr(); - count++; - } - if (assign == null) { - final Instruction newOne = new MultiAssignInstruction(this, _operandStart, assignFirst, assign); - _expressionList.replaceInclusive(_operandStart, assign, newOne); - txformed = true; - } - } - - if (!txformed) { - boolean again = false; - for (Instruction i = _operandStart; i != null; i = again ? i : i.getNextExpr()) { - again = false; - - for (final InstructionTransformer txformer : transformers) { - final Instruction newI = txformer.transform(_expressionList, i); - if (newI != null) { - i = newI; - again = true; - txformed = true; - break; - } - } - - } - - } - - if (txformed) { - if (logger.isLoggable(Level.FINE)) { - - System.out.println("We are looking at " + _instruction + " which wants to consume " - + _instruction.getStackConsumeCount() + " operands"); - } - } else { - throw new ClassParseException(_instruction, ClassParseException.TYPE.OPERANDCONSUMERPRODUCERMISSMATCH); - } - - } - - /** - * Determine if this method is a getter and record the accessed field if so - */ - void checkForGetter(Map pcMap) throws ClassParseException { - final String methodName = getMethod().getName(); - String rawVarNameCandidate = null; - boolean mightBeGetter = true; - - if (methodName.startsWith("get")) { - rawVarNameCandidate = methodName.substring(3); - } else if (methodName.startsWith("is")) { - rawVarNameCandidate = methodName.substring(2); - } else { - mightBeGetter = false; - } - - // Getters should have 3 bcs: aload_0, getfield, ?return - if (mightBeGetter) { - boolean possiblySimpleGetImplementation = pcMap.size() == 3; - if ((rawVarNameCandidate != null) && (isNoCL() || possiblySimpleGetImplementation)) { - final String firstLetter = rawVarNameCandidate.substring(0, 1).toLowerCase(); - final String varNameCandidateCamelCased = rawVarNameCandidate.replaceFirst(rawVarNameCandidate.substring(0, 1), firstLetter); - String accessedFieldName; - - if (!isNoCL()) { - - Instruction instruction = expressionList.getHead(); - - if ((instruction instanceof Return) && (expressionList.getHead() == expressionList.getTail())) { - instruction = instruction.getPrevPC(); - if (instruction instanceof AccessInstanceField) { - final FieldEntry field = ((AccessInstanceField) instruction).getConstantPoolFieldEntry(); - accessedFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - if (accessedFieldName.equals(varNameCandidateCamelCased)) { - - // Verify field type matches return type - final String fieldType = field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - final String returnType = getMethod().getDescriptor().substring(2); - //System.out.println( "### field type = " + fieldType ); - //System.out.println( "### method args = " + returnType ); - assert (fieldType.length() == 1) && (returnType.length() == 1) : " can only use basic type getters"; - - // Allow isFoo style for boolean fields - if ((methodName.startsWith("is") && fieldType.equals("Z")) || (methodName.startsWith("get"))) { - if (fieldType.equals(returnType)) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found " + methodName + " as a getter for " + varNameCandidateCamelCased.toLowerCase()); - } - - methodIsGetter = true; - setAccessorVariableFieldEntry(field); - assert methodIsSetter == false : " cannot be both"; - } else { - throw new ClassParseException(ClassParseException.TYPE.BADGETTERTYPEMISMATCH, methodName); - - } - } - } else { - throw new ClassParseException(ClassParseException.TYPE.BADGETTERNAMEMISMATCH, methodName); - } - } - } else { - throw new ClassParseException(ClassParseException.TYPE.BADGETTERNAMENOTFOUND, methodName); - } - } else { - FieldEntry fieldEntry = getMethod().getOwnerClassModel().getConstantPool().getFieldEntry(varNameCandidateCamelCased); - setAccessorVariableFieldEntry(fieldEntry); - if (getAccessorVariableFieldEntry() == null) { - throw new ClassParseException(ClassParseException.TYPE.BADGETTERNAMEMISMATCH, methodName); - } - methodIsGetter = true; - if (method.getClassModel().getPrivateMemorySize(fieldEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()) != null) - { - methodIsPrivateMemoryGetter = true; - } - } - } else { - throw new ClassParseException(ClassParseException.TYPE.BADGETTERNAMENOTFOUND, methodName); - } - } - } - - private void setAccessorVariableFieldEntry(FieldEntry field) { - accessorVariableFieldEntry = field; - } - - /** - * Determine if this method is a setter and record the accessed field if so - */ - void checkForSetter(Map pcMap) throws ClassParseException { - final String methodName = getMethod().getName(); - if (methodName.startsWith("set")) { - final String rawVarNameCandidate = methodName.substring(3); - final String firstLetter = rawVarNameCandidate.substring(0, 1).toLowerCase(); - final String varNameCandidateCamelCased = rawVarNameCandidate.replaceFirst(rawVarNameCandidate.substring(0, 1), - firstLetter); - String accessedFieldName = null; - final Instruction instruction = expressionList.getHead(); - - // setters should be aload_0, ?load_1, putfield, return - if ((instruction instanceof AssignToInstanceField) && (expressionList.getTail() instanceof Return) && (pcMap.size() == 4)) { - final Instruction prev = instruction.getPrevPC(); - if (prev instanceof AccessLocalVariable) { - final FieldEntry field = ((AssignToInstanceField) instruction).getConstantPoolFieldEntry(); - accessedFieldName = field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - if (accessedFieldName.equals(varNameCandidateCamelCased)) { - - // Verify field type matches setter arg type - final String fieldType = field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - final String setterArgType = getMethod().getDescriptor().substring(1, 2); - - //System.out.println( "### field type = " + fieldType ); - //System.out.println( "### setter type = " + setterArgType ); - assert fieldType.length() == 1 : " can only use basic type getters"; - - if (fieldType.equals(setterArgType)) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Found " + methodName + " as a setter for " + varNameCandidateCamelCased.toLowerCase() - + " of type " + fieldType); - } - - methodIsSetter = true; - setAccessorVariableFieldEntry(field); - - // Setters use putfield which will miss the normal store check - if (fieldType.equals("B") || fieldType.equals("Z")) { - usesByteWrites = true; - } - - assert methodIsGetter == false : " cannot be both"; - } else { - throw new ClassParseException(ClassParseException.TYPE.BADSETTERTYPEMISMATCH, methodName); - } - } else { - throw new ClassParseException(ClassParseException.TYPE.BADSETTERTYPEMISMATCH, methodName); - } - } - } - } - } - - // The entrypoint is used to make checks on object accessors - Entrypoint entrypoint = null; - - MethodModel(ClassModelMethod _method, Entrypoint _entrypoint) throws AparapiException { - entrypoint = _entrypoint; - init(_method); - } - - MethodModel(ClassModelMethod _method) throws AparapiException { - init(_method); - } - - public static class FakeLocalVariableTableEntry implements LocalVariableTableEntry{ - - class Var implements LocalVariableInfo{ - - int startPc = 0; - - int endPc = 0; - - String name = null; - - boolean arg; - - String descriptor = ""; - - int slotIndex; - - Var(StoreSpec _storeSpec, int _slotIndex, int _startPc, boolean _arg) { - slotIndex = _slotIndex; - arg = _arg; - startPc = _startPc; - if (_storeSpec.equals(StoreSpec.A)) { - name = "arr_" + _slotIndex; - descriptor = "/* arg */"; - } else { - name = _storeSpec.toString().toLowerCase() + "_" + _slotIndex; - descriptor = _storeSpec.toString(); - } - } - - Var() { - name = "NONE"; - } - - @Override public boolean equals(Object object) { - return (object instanceof Var && ((object == this) || ((Var) object).name.equals(name))); - } - - public String toString() { - return (name + "[" + startPc + "-" + endPc + "]"); - } - - @Override public boolean isArray() { - return name.startsWith("arr"); - } - - @Override public int getStart() { - return startPc; - } - - @Override public int getEnd() { - return endPc; - } - - @Override public int getLength() { - return endPc - startPc; - } - - @Override public String getVariableName() { - return (name); - } - - @Override public String getVariableDescriptor() { - return (descriptor); - } - - @Override public int getVariableIndex() { - return (slotIndex); - } - } - - List list = new ArrayList(); - - public FakeLocalVariableTableEntry(Map _pcMap, ClassModelMethod _method) { - int numberOfSlots = _method.getCodeEntry().getMaxLocals(); - - MethodDescription description = ClassModel.getMethodDescription(_method.getDescriptor()); - String[] args = description.getArgs(); - - int thisOffset = _method.isStatic() ? 0 : 1; - - Var[] vars = new Var[numberOfSlots + thisOffset]; - StoreSpec[] argsAsStoreSpecs = new StoreSpec[args.length + thisOffset]; - if (thisOffset == 1) { - argsAsStoreSpecs[0] = StoreSpec.O; - vars[0] = new Var(argsAsStoreSpecs[0], 0, 0, true); - list.add(vars[0]); - - } - for (int i = 0; i < args.length; i++) { - if (args[i].startsWith("[")) { - argsAsStoreSpecs[i + thisOffset] = StoreSpec.A; - } else { - argsAsStoreSpecs[i + thisOffset] = StoreSpec.valueOf(args[i].substring(0, 1)); - } - vars[i + thisOffset] = new Var(argsAsStoreSpecs[i + thisOffset], i + thisOffset, 0, true); - list.add(vars[i + thisOffset]); - } - for (int i = args.length + thisOffset; i < numberOfSlots + thisOffset; i++) { - vars[i] = new Var(); - } - - int pc = 0; - Instruction instruction = null; - for (Entry entry : _pcMap.entrySet()) { - - pc = entry.getKey(); - instruction = entry.getValue(); - StoreSpec storeSpec = instruction.getByteCode().getStore(); - - if (storeSpec != StoreSpec.NONE) { - int slotIndex = ((InstructionSet.LocalVariableTableIndexAccessor) instruction).getLocalVariableTableIndex(); - Var prevVar = vars[slotIndex]; - Var var = new Var(storeSpec, slotIndex, pc + instruction.getLength(), false); // will get collected pretty soon if this is not the same as the previous in this slot - if (!prevVar.equals(var)) { - prevVar.endPc = pc; - vars[slotIndex] = var; - list.add(vars[slotIndex]); - } - } - } - for (int i = 0; i < numberOfSlots + thisOffset; i++) { - vars[i].endPc = pc + instruction.getLength(); - } - - Collections.sort(list, new Comparator(){ - @Override public int compare(LocalVariableInfo o1, LocalVariableInfo o2) { - return o1.getStart() - o2.getStart(); - } - }); - - if (Config.enableShowFakeLocalVariableTable) { - System.out.println("FakeLocalVariableTable:"); - System.out.println(" Start Length Slot Name Signature"); - for (LocalVariableInfo lvi : list) { - Var var = (Var) lvi; - System.out.println(String.format(" %5d %5d %4d %8s %s", var.startPc, var.getLength(), var.slotIndex, - var.name, var.descriptor)); - } - } - } - - @Override public LocalVariableInfo getVariable(int _pc, int _index) { - LocalVariableInfo returnValue = null; - // System.out.println("pc = " + _pc + " index = " + _index); - for (LocalVariableInfo localVariableInfo : list) { - // System.out.println(" start=" + localVariableInfo.getStart() + " length=" + localVariableInfo.getLength() - // + " varidx=" + localVariableInfo.getVariableIndex()); - if (_pc >= localVariableInfo.getStart() - 1 && _pc <= (localVariableInfo.getStart() + localVariableInfo.getLength()) - && _index == localVariableInfo.getVariableIndex()) { - returnValue = localVariableInfo; - break; - } - } - return (returnValue); - } - - @Override public Iterator iterator() { - return list.iterator(); - } - - } - - private void init(ClassModelMethod _method) throws AparapiException { - try { - method = _method; - expressionList = new ExpressionList(this); - ClassModel owner = _method.getOwnerClassModel(); - if (owner.getNoCLMethods().contains(method.getName())) { - noCL = true; - } - - // check if we have any exception handlers - final int exceptionsSize = method.getCodeEntry().getExceptionPoolEntries().size(); - if (exceptionsSize > 0) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("exception size for " + method + " = " + exceptionsSize); - } - throw new ClassParseException(ClassParseException.TYPE.EXCEPTION); - } - - // check if we have any local variables which are arrays. This is an attempt to avoid aliasing field arrays - - // We are going to make 4 passes. - - // Pass #1 create a linked list of instructions from head to tail - final Map pcMap = createListOfInstructions(); - - LocalVariableTableEntry localVariableTableEntry = method.getLocalVariableTableEntry(); - if (localVariableTableEntry == null) { - localVariableTableEntry = new FakeLocalVariableTableEntry(pcMap, method); - method.setLocalVariableTableEntry(localVariableTableEntry); - logger.warning("Method " - + method.getName() - + method.getDescriptor() - + " does not contain a LocalVariableTable entry (source not compiled with -g) aparapi will attempt to create a synthetic table based on bytecode. This is experimental!!"); - } - - // pass #2 build branch graph - buildBranchGraphs(pcMap); - - // pass #3 build branch graph - deoptimizeReverseBranches(); - - // pass #4 - - foldExpressions(); - - // Accessor conversion only works on member object arrays - if (isNoCL() || (entrypoint != null) && (_method.getClassModel() != entrypoint.getClassModel())) { - if (logger.isLoggable(Level.FINE)) { - logger.fine("Considering accessor call: " + getName()); - } - checkForGetter(pcMap); - checkForSetter(pcMap); - } - - // In order to allow inline access of object member fields, postpone this check - //if ((!Config.enablePUTFIELD) && usesPutfield && !isSetter()) { - // throw new ClassParseException("We don't support putfield instructions beyond simple setters"); - //} - - if (logger.isLoggable(Level.FINE)) { - logger.fine("end \n" + expressionList.dumpDiagram(null)); - } - if (Config.instructionListener != null) { - Config.instructionListener.showAndTell("end", expressionList.getHead(), null); - } - } catch (final Throwable _t) { - if (_t instanceof ClassParseException) { - _t.printStackTrace(); - throw (ClassParseException) _t; - } - throw new ClassParseException(_t); - - } - } - - public LocalVariableTableEntry getLocalVariableTableEntry() { - return (method.getLocalVariableTableEntry()); - } - - public ConstantPool getConstantPool() { - return (method.getConstantPool()); - } - - public LocalVariableInfo getLocalVariable(int _pc, int _index) { - return (method.getLocalVariable(_pc, _index)); - } - - public String getSimpleName() { - return (method.getName()); - } - - /* - * @return the fully qualified name such as "com_amd_javalabs_opencl_demo_PaternityTest$SimpleKernel__actuallyDoIt" - */ - public String getName() { - return (method.getClassModel().getMethod(method.getName(), method.getDescriptor()).getClassModel().getClassWeAreModelling() - .getName().replace('.', '_') - + "__" + method.getName()); - } - - public String getReturnType() { - final String returnType = method.getDescriptorUTF8Entry().getUTF8(); - final int index = returnType.indexOf(")"); - return (returnType.substring(index + 1)); - } - - public List getMethodCalls() { - final List methodCalls = new ArrayList(); - - for (Instruction i = getPCHead(); i != null; i = i.getNextPC()) { - if (i instanceof MethodCall) { - final MethodCall methodCall = (MethodCall) i; - methodCalls.add(methodCall); - } - } - return (methodCalls); - } - - public Instruction getPCHead() { - return (pcHead); - } - - public Instruction getExprHead() { - return (expressionList.getHead()); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLArgDescriptor.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLArgDescriptor.java deleted file mode 100644 index 88d184d0..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLArgDescriptor.java +++ /dev/null @@ -1,102 +0,0 @@ -/** - * - */ -package com.amd.aparapi.internal.opencl; - -public class OpenCLArgDescriptor{ - - public final static int ARG_BYTE_BIT = 1 << 0x000; - - public final static int ARG_SHORT_BIT = 1 << 0x001; - - public final static int ARG_INT_BIT = 1 << 0x002; - - public final static int ARG_FLOAT_BIT = 1 << 0x003; - - public final static int ARG_LONG_BIT = 1 << 0x004; - - public final static int ARG_DOUBLE_BIT = 1 << 0x005; - - public final static int ARG_ARRAY_BIT = 1 << 0x006; - - public final static int ARG_PRIMITIVE_BIT = 1 << 0x007; - - public final static int ARG_GLOBAL_BIT = 1 << 0x008; - - public final static int ARG_LOCAL_BIT = 1 << 0x009; - - public final static int ARG_CONST_BIT = 1 << 0x00A; - - public final static int ARG_READONLY_BIT = 1 << 0x00B; - - public final static int ARG_WRITEONLY_BIT = 1 << 0x00C; - - public final static int ARG_READWRITE_BIT = 1 << 0x00D; - - public final static int ARG_ISARG_BIT = 1 << 0x00E; - - public OpenCLMem memVal; - - private final String name; - - public long bits; - - public OpenCLKernel kernel; - - - - /** - * Full constructor - * - * @param _name - * @param _bits - */ - public OpenCLArgDescriptor(String _name, long _bits) { - name = _name; - bits = _bits; - } - - @Override public String toString() { - final StringBuilder argBuilder = new StringBuilder(); - - if ((bits & ARG_GLOBAL_BIT) == ARG_GLOBAL_BIT) { - argBuilder.append("__global "); - } else if ((bits & ARG_LOCAL_BIT) == ARG_LOCAL_BIT) { - argBuilder.append("__local "); - } else if ((bits & ARG_CONST_BIT) == ARG_CONST_BIT) { - argBuilder.append("__constant "); - } else if ((bits & ARG_ISARG_BIT) == ARG_ISARG_BIT) { - // - } else { - argBuilder.append("WHATISTHIS?"); - } - - if ((bits & ARG_FLOAT_BIT) == ARG_FLOAT_BIT) { - argBuilder.append("float "); - } else if ((bits & ARG_INT_BIT) == ARG_INT_BIT) { - argBuilder.append("int "); - } else if ((bits & ARG_SHORT_BIT) == ARG_SHORT_BIT) { - argBuilder.append("short "); - } else if ((bits & ARG_DOUBLE_BIT) == ARG_DOUBLE_BIT) { - argBuilder.append("double "); - } else if ((bits & ARG_LONG_BIT) == ARG_LONG_BIT) { - argBuilder.append("long "); - } - - if ((bits & ARG_ARRAY_BIT) == ARG_ARRAY_BIT) { - argBuilder.append("*"); - } - - argBuilder.append(name); - - if ((bits & ARG_READONLY_BIT) == ARG_READONLY_BIT) { - argBuilder.append(" /* readonly */"); - } else if ((bits & ARG_WRITEONLY_BIT) == ARG_WRITEONLY_BIT) { - argBuilder.append(" /* writeonly */"); - } else if ((bits & ARG_READWRITE_BIT) == ARG_READWRITE_BIT) { - argBuilder.append(" /* readwrite */"); - } - - return (argBuilder.toString()); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLKernel.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLKernel.java deleted file mode 100644 index bc464a01..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLKernel.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.amd.aparapi.internal.opencl; - -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.internal.kernel.KernelRunner; -import java.util.List; - -import com.amd.aparapi.internal.jni.OpenCLJNI; - -public class OpenCLKernel extends OpenCLJNI{ - - private OpenCLArgDescriptor[] args = null; - - private OpenCLProgram program = null; - - private String kernelName = null; - - private long kernelId = 0; - - /** - * This constructor is specifically for JNI usage - * - * @param kernel - * @param programInstance - * @param name - * @param _args - */ - public OpenCLKernel(long kernel, OpenCLProgram programInstance, String name, OpenCLArgDescriptor[] _args) { - kernelId = kernel; - program = programInstance; - kernelName = name; - args = _args; - } - - private OpenCLKernel() { - } - - /** - * This method is used to create a new Kernel from JNI - * - * @param _program - * @param _kernelName - * @param _args - * @return - */ - public static OpenCLKernel createKernel(OpenCLProgram _program, String _kernelName, List _args) { - final OpenCLArgDescriptor[] argArray = _args.toArray(new OpenCLArgDescriptor[0]); - final OpenCLKernel oclk = new OpenCLKernel().createKernelJNI(_program, _kernelName, argArray); - for (final OpenCLArgDescriptor arg : argArray) { - arg.kernel = oclk; - } - return oclk; - } - - public String getName() { - return kernelName; - } - - public void invoke(Object[] _args) { - invoke(this, _args); - } - - public void dispose(){ - disposeKernel(this); - } - - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLLoader.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLLoader.java deleted file mode 100644 index 3514c9d0..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLLoader.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.amd.aparapi.internal.opencl; - -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.amd.aparapi.Config; -import com.amd.aparapi.internal.jni.OpenCLJNI; - -/** - * This class is intended to be a singleton which determines if OpenCL is available upon startup of Aparapi - */ -public class OpenCLLoader extends OpenCLJNI{ - - private static final Logger logger = Logger.getLogger(Config.getLoggerName()); - - private static boolean openCLAvailable = false; - - private static final OpenCLLoader instance = new OpenCLLoader(); - - static { - if (Config.useAgent) { - logger.fine("Using agent!"); - openCLAvailable = true; - } else { - final String arch = System.getProperty("os.arch"); - logger.fine("arch = " + arch); - String aparapiLibraryName = null; - - if (arch.equals("amd64") || arch.equals("x86_64")) { - aparapiLibraryName = "aparapi_x86_64"; - } else if (arch.equals("x86") || arch.equals("i386")) { - aparapiLibraryName = "aparapi_x86"; - } else { - logger.warning("Expected property os.arch to contain amd64, x86_64, x86 or i386 but instead found " + arch - + " as a result we don't know which aparapi to attempt to load."); - } - if (aparapiLibraryName != null) { - logger.fine("attempting to load aparapi shared lib " + aparapiLibraryName); - - try { - Runtime.getRuntime().loadLibrary(aparapiLibraryName); - openCLAvailable = true; - } catch (final UnsatisfiedLinkError e) { - logger.log(Level.SEVERE, "Check your environment. Failed to load aparapi native library " + aparapiLibraryName - + " or possibly failed to locate opencl native library (opencl.dll/opencl.so)." - + " Ensure that both are in your PATH (windows) or in LD_LIBRARY_PATH (linux)."); - } - } - } - } - - /** - * Retrieve a singleton instance of OpenCLLoader - * - * @return A singleton instance of OpenCLLoader - */ - protected static OpenCLLoader getInstance() { - return instance; - } - - /** - * Retrieve the status of whether OpenCL was successfully loaded - * - * @return The status of whether OpenCL was successfully loaded - */ - public static boolean isOpenCLAvailable() { - return openCLAvailable; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLMem.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLMem.java deleted file mode 100644 index 16ec93c7..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLMem.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.amd.aparapi.internal.opencl; - -public class OpenCLMem{ - - public final static int MEM_DIRTY_BIT = 1 << 0x00F; - - public final static int MEM_COPY_BIT = 1 << 0x010; - - public final static int MEM_ENQUEUED_BIT = 1 << 0x011; - - public long bits; // dirty, copy, enqueued - - public int sizeInBytes; - - public long memId; - - public long address; - - public Object instance; - - public OpenCLProgram program; -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLPlatform.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLPlatform.java deleted file mode 100644 index 12b52360..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLPlatform.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.amd.aparapi.internal.opencl; - -import java.util.ArrayList; -import java.util.List; - -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.jni.OpenCLJNI; - -public class OpenCLPlatform extends OpenCLJNI{ - - private long platformId; - - private final String version; - - private final String vendor; - - private final String name; - - private final List devices = new ArrayList(); - - /** - * Default constructor - */ - public OpenCLPlatform() { - version = ""; - vendor = ""; - name = ""; - } - - /** - * Full constructor - * - * @param _platformId - * @param _version - * @param _vendor - * @param _name - */ - public OpenCLPlatform(long _platformId, String _version, String _vendor, String _name) { - platformId = _platformId; - version = _version; - vendor = _vendor; - name = _name; - } - - public void addOpenCLDevice(OpenCLDevice device) { - devices.add(device); - } - - public List getOpenCLDevices() { - return (devices); - } - - public List getOpenCLPlatforms() { - if (OpenCLLoader.isOpenCLAvailable()) { - return (getPlatforms()); - } else { - return (new ArrayList()); - } - } - - public String getName() { - return (name); - } - - public String getVersion() { - return (version); - } - - public String getVendor() { - return (vendor); - } - - @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("PlatformId "); - sb.append("\nName:"); - sb.append(vendor); - sb.append("\nVersion:"); - sb.append(version); - - return sb.toString(); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLProgram.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLProgram.java deleted file mode 100644 index 05e97955..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/opencl/OpenCLProgram.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.amd.aparapi.internal.opencl; - -import com.amd.aparapi.ProfileInfo; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.jni.OpenCLJNI; - -public class OpenCLProgram extends OpenCLJNI{ - - private final long programId; - - private final long queueId; - - private final long contextId; - - private final long profileInfo = 0L; - - private final OpenCLDevice device; - - private final String source; - - /** - * FIXME Why are these not ConcurrentHashMaps or at least synchronized at a finer grain? - */ - private final Map instanceToMem = new HashMap(); - - private final Map addressToMem = new HashMap(); - - /** - * Minimal constructor - */ - public OpenCLProgram(OpenCLDevice _device, String _source) { - programId = 0; - queueId = 0; - contextId = 0; - device = _device; - source = _source; - } - - /** - * Full constructor - * - * @param _programId - * @param _queueId - * @param _contextId - * @param _device - * @param _source - */ - public OpenCLProgram(long _programId, long _queueId, long _contextId, OpenCLDevice _device, String _source) { - programId = _programId; - queueId = _queueId; - contextId = _contextId; - device = _device; - source = _source; - } - - public OpenCLProgram createProgram(OpenCLDevice context) { - return createProgram(context, source); - } - - public OpenCLDevice getDevice() { - return device; - } - - public synchronized OpenCLMem getMem(Object _instance, long _address) { - OpenCLMem mem = instanceToMem.get(_instance); - - if (mem == null) { - mem = addressToMem.get(_instance); - if (mem != null) { - System.out.println("object has been moved, we need to remap the buffer"); - remap(this, mem, _address); - } - } - - return (mem); - } - - public synchronized void add(Object _instance, long _address, OpenCLMem _mem) { - instanceToMem.put(_instance, _mem); - addressToMem.put(_address, _mem); - } - - public synchronized void remapped(Object _instance, long _address, OpenCLMem _mem, long _oldAddress) { - addressToMem.remove(_oldAddress); - addressToMem.put(_address, _mem); - } - - public void dispose(){ - disposeProgram(this); - } - - public List getProfileInfo(){ - return(getProfileInfo(this)); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/reader/ByteBuffer.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/reader/ByteBuffer.java deleted file mode 100644 index 52ab9b67..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/reader/ByteBuffer.java +++ /dev/null @@ -1,225 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.reader; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; - -/** - * Used to parse ClassFile structure.
      - * - * Provides low level access to sequential bytes in a stream given a specific offset. - * - * Does not keep track of accesses. For this you will need a ByteReader - * - * @see com.amd.aparapi.internal.reader.ByteReader - * - * @author gfrost - * - */ -public class ByteBuffer{ - - private byte[] bytes; - - /** - * Construct from an InputStream - * - * @param _inputStream - */ - ByteBuffer(InputStream _inputStream) { - final ByteArrayOutputStream baos = new ByteArrayOutputStream(); - bytes = new byte[4096]; - int bytesRead = 0; - - try { - while ((bytesRead = _inputStream.read(bytes)) > 0) { - baos.write(bytes, 0, bytesRead); - } - - bytes = baos.toByteArray(); - } catch (final IOException e) { - bytes = new byte[0]; - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - int u2(int _offset) { - return ((u1(_offset) << 8) | u1(_offset + 1)); - } - - int s2(int _offset) { - int s2 = u2(_offset); - - if (s2 > 0x7fff) { - s2 = -(0x10000 - s2); - } - return (s2); - } - - int u4(int _offset) { - return (((u2(_offset) & 0xffff) << 16) | u2(_offset + 2)); - } - - int s4(int _offset) { - final int s4 = u4(_offset); - return (s4); - } - - ByteBuffer(byte[] _bytes) { - bytes = _bytes; - } - - int u1(int _offset) { - return ((bytes[_offset] & 0xff)); - } - - int size() { - return (bytes.length); - } - - double d8(int _offset) { - return (Double.longBitsToDouble(u8(_offset))); - } - - float f4(int _offset) { - return (Float.intBitsToFloat(u4(_offset))); - - } - - long u8(int _offset) { - return ((u4(_offset) & 0xffffffffL) << 32) | (u4(_offset + 4) & 0xffffffffL); - } - - int utf8bytes(int _offset) { - return (2 + u2(_offset)); - } - - byte[] bytes(int _offset, int _length) { - final byte[] returnBytes = new byte[_length]; - System.arraycopy(bytes, _offset, returnBytes, 0, _length); - return (returnBytes); - } - - String utf8(int _offset) { - final int utflen = u2(_offset); - _offset += 2; - final byte[] bytearr = new byte[utflen]; - final char[] chararr = new char[utflen]; - - int c, char2, char3; - int count = 0; - int chararr_count = 0; - - for (int i = 0; i < utflen; i++) { - bytearr[i] = b(_offset + i); - } - _offset += utflen; - - while (count < utflen) { - c = bytearr[count] & 0xff; - if (c > 127) { - break; - } - count++; - chararr[chararr_count++] = (char) c; - } - - while (count < utflen) { - c = bytearr[count] & 0xff; - switch (c >> 4) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - /* 0xxxxxxx*/ - count++; - chararr[chararr_count++] = (char) c; - break; - case 12: - case 13: - /* 110x xxxx 10xx xxxx*/ - count += 2; - if (count > utflen) { - System.out.println("malformed input: partial character at end"); - return (null); - } - char2 = bytearr[count - 1]; - if ((char2 & 0xC0) != 0x80) { - System.out.println("malformed input around byte " + count); - return (null); - } - chararr[chararr_count++] = (char) (((c & 0x1F) << 6) | (char2 & 0x3F)); - break; - case 14: - /* 1110 xxxx 10xx xxxx 10xx xxxx */ - count += 3; - if (count > utflen) { - System.out.println("malformed input: partial character at end"); - return (null); - } - char2 = bytearr[count - 2]; - char3 = bytearr[count - 1]; - if (((char2 & 0xC0) != 0x80) || ((char3 & 0xC0) != 0x80)) { - System.out.println("malformed input around byte " + (count - 1)); - return (null); - } - chararr[chararr_count++] = (char) (((c & 0x0F) << 12) | ((char2 & 0x3F) << 6) | ((char3 & 0x3F) << 0)); - break; - default: - /* 10xx xxxx, 1111 xxxx */ - System.out.println("malformed input around byte " + count); - return (null); - } - } - // The number of chars produced may be less than utflen - final String returnString = new String(chararr, 0, chararr_count); - // System.out.println("returnString.length="+returnString.length()+" byte[]="+bytearr.length); - return (returnString); - } - - byte b(int _offset) { - return bytes[_offset]; - } - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/reader/ByteReader.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/reader/ByteReader.java deleted file mode 100644 index 7751fadb..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/reader/ByteReader.java +++ /dev/null @@ -1,165 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.reader; - -import java.io.InputStream; - -/** - * Primarily used to parse various ClassFile structures. This class provides low level access to sequential bytes in a stream given stream. - *

      - * Basically wraps a ByteBuffer and keeps track of the current offset. All requests on - * this ByteReader will be delegated to wrappedByteBuffer. - *

      - * @see com.amd.aparapi.internal.reader.ByteBuffer - * - * @author gfrost - * - */ -public class ByteReader{ - - private final ByteBuffer byteBuffer; - - private int offset; - - /** - * Construct form a given ByteBuffer. - * - * @param _byteBuffer an existing ByteBuffer - */ - public ByteReader(ByteBuffer _byteBuffer) { - byteBuffer = _byteBuffer; - } - - /** - * Construct form an array of bytes. - * - * @param _bytes an existing byte array - */ - public ByteReader(byte[] _bytes) { - this(new ByteBuffer(_bytes)); - } - - /** - * Construct form an input stream (say a ClassFile). - * - * @param _inputStream a stream of bytes - */ - public ByteReader(InputStream _inputStream) { - this(new ByteBuffer(_inputStream)); - } - - public int u1() { - final int value = byteBuffer.u1(offset); - offset += 1; - return (value); - } - - public int u2() { - final int value = byteBuffer.u2(offset); - offset += 2; - return (value); - } - - public int s2() { - final int value = byteBuffer.s2(offset); - offset += 2; - return (value); - } - - public int peekU2() { - return (byteBuffer.u2(offset)); - } - - public int u4() { - final int value = byteBuffer.u4(offset); - offset += 4; - return (value); - } - - public int s4() { - final int value = byteBuffer.s4(offset); - offset += 4; - return (value); - } - - public long u8() { - final long value = byteBuffer.u8(offset); - offset += 8; - return (value); - } - - public float f4() { - final float value = byteBuffer.f4(offset); - offset += 4; - return (value); - } - - public double d8() { - final double value = byteBuffer.d8(offset); - offset += 8; - return (value); - } - - public String utf8() { - final String utf8 = byteBuffer.utf8(offset); - offset += byteBuffer.utf8bytes(offset); - return (utf8); - } - - public byte[] bytes(int _length) { - final byte[] bytes = byteBuffer.bytes(offset, _length); - offset += _length; - return (bytes); - } - - public void skip(int _length) { - offset += _length; - } - - public int getOffset() { - return (offset); - } - - public void setOffset(int _offset) { - offset = _offset; - } - - public boolean hasMore() { - return (getOffset() < byteBuffer.size()); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/InstructionHelper.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/InstructionHelper.java deleted file mode 100644 index 3de9baa9..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/InstructionHelper.java +++ /dev/null @@ -1,593 +0,0 @@ -package com.amd.aparapi.internal.tool; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import com.amd.aparapi.internal.exception.CodeGenException; -import com.amd.aparapi.internal.instruction.Instruction; -import com.amd.aparapi.internal.instruction.InstructionSet.AssignToLocalVariable; -import com.amd.aparapi.internal.instruction.InstructionSet.Branch; -import com.amd.aparapi.internal.instruction.InstructionSet.ByteCode; -import com.amd.aparapi.internal.instruction.InstructionSet.CloneInstruction; -import com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction; -import com.amd.aparapi.internal.instruction.InstructionSet.ConditionalBranch16; -import com.amd.aparapi.internal.instruction.InstructionSet.Constant; -import com.amd.aparapi.internal.instruction.InstructionSet.FieldReference; -import com.amd.aparapi.internal.instruction.InstructionSet.I_ACONST_NULL; -import com.amd.aparapi.internal.instruction.InstructionSet.I_IINC; -import com.amd.aparapi.internal.instruction.InstructionSet.LocalVariableTableIndexAccessor; -import com.amd.aparapi.internal.instruction.InstructionSet.MethodCall; -import com.amd.aparapi.internal.instruction.InstructionSet.OperatorInstruction; -import com.amd.aparapi.internal.model.ClassModel; -import com.amd.aparapi.internal.model.Entrypoint; -import com.amd.aparapi.internal.model.MethodModel; -import com.amd.aparapi.internal.model.ClassModel.LocalVariableTableEntry; -import com.amd.aparapi.internal.model.ClassModel.LocalVariableInfo; -import com.amd.aparapi.internal.writer.BlockWriter; - -public class InstructionHelper{ - - public static class Table{ - - final static String spaces = " "; - - private final List cols = new ArrayList(); - - private int size = 0; - - private int col = 0; - - public static class Col{ - private final List text = new ArrayList(); - - private int width; - - private String format = "%s"; - - public Col(String _format) { - format = _format; - } - - public Col() { - this("%s"); - } - - public void format(Object... args) { - final String s = String.format(format, args); - - width = Math.max(s.length(), width); - text.add(s); - } - - public int size() { - return (text.size()); - } - - public String pad(String _s, int _width) { - final int length = _s.length(); - final int padWidth = _width - length; - final String padded = _s + spaces.substring(0, padWidth); - return (padded); - - } - - public String get(int _i) { - - return (pad(text.get(_i), width)); - } - - public void header(String _header) { - text.add(_header); - width = _header.length(); - } - } - - public Table(String... _formats) { - for (final String format : _formats) { - cols.add(new Col(format)); - } - } - - public void data(Object... args) { - cols.get(col++).format(args); - if (col == cols.size()) { - col = 0; - size++; - } - } - - @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - - for (int i = 0; i < size; i++) { - for (final Table.Col col : cols) { - sb.append(col.get(i)); - } - sb.append("\n"); - } - - return (sb.toString()); - } - - public void header(String... _headers) { - for (int i = 0; i < _headers.length; i++) { - cols.get(i).header(_headers[i]); - } - - size++; - } - } - - public static class StringWriter extends BlockWriter{ - private StringBuilder sb = null; - - public StringWriter(StringBuilder _sb) { - sb = _sb; - } - - public StringWriter() { - sb = new StringBuilder(); - } - - @Override public void write(String _string) { - sb.append(_string); - } - - @Override public String toString() { - return (sb.toString().trim()); - } - - public void clear() { - sb = new StringBuilder(); - } - - public static String write(MethodModel _methodModel) throws CodeGenException { - final StringWriter sw = new StringWriter(); - sw.writeMethodBody(_methodModel); - return (sw.toString()); - } - - @Override public void write(Entrypoint entryPoint) { - // TODO Auto-generated method stub - } - - @Override public void writeMethodBody(MethodModel _methodModel) throws CodeGenException { - super.writeMethodBody(_methodModel); - } - } - - public static class BranchVector{ - protected Instruction from; - - protected Instruction to; - - protected Instruction start; - - protected Instruction end; - - private boolean forward = false; - - public BranchVector(Instruction _from, Instruction _to) { - from = _from; - to = _to; - if (from.getThisPC() > to.getThisPC()) { - start = _to; - end = _from; - forward = false; - } else { - start = _from; - end = _to; - forward = true; - } - - } - - public boolean overlaps(BranchVector _other) { - final boolean overlap = ((start.getThisPC() < _other.start.getThisPC()) && (end.getThisPC() > _other.start.getThisPC()) && (end - .getThisPC() <= _other.end.getThisPC())) // - || ((_other.start.getThisPC() < start.getThisPC()) && (_other.start.getThisPC() > start.getThisPC()) && (_other.end - .getThisPC() <= end.getThisPC())); - - return (overlap); - } - - public Instruction getTo() { - return (to); - } - - public Instruction getFrom() { - return (from); - } - - public int getStartPC() { - return (start.getThisPC()); - } - - public int getEndPC() { - return (end.getThisPC()); - } - - public Instruction getStart() { - return (start); - } - - public Instruction getEnd() { - return (end); - } - - @Override public boolean equals(Object other) { - return ((other instanceof BranchVector) && ((other == this) || (((BranchVector) other).from - .equals(((BranchVector) other).to)))); - } - - @Override public int hashCode() { - return ((from.hashCode() * 31) + to.hashCode()); - - } - - public boolean isForward() { - return (forward); - } - - @Override public String toString() { - if (isForward()) { - return ("forward from " + getStart() + " to " + getEnd()); - } - return ("backward from " + getEnd() + " to " + getStart()); - } - - public boolean isConditionalBranch() { - return (getFrom().isBranch() && getFrom().asBranch().isConditional()); - } - - public boolean isBackward() { - return (!isForward()); - } - - public static final String NONE = " "; - - public static final String THROUGH = "|"; - - public static final String CONDITIONAL_START = "?"; - - public static final String UNCONDITIONAL_START = "-"; - - public static final String TOP_ARROW = "^"; - - public static final String BOTTOM_ARROW = "v"; - - public String render(int _pc) { - String returnString = NONE; - - if (isForward()) { - if (_pc == getStartPC()) { - returnString = isConditionalBranch() ? CONDITIONAL_START : UNCONDITIONAL_START; - } else if ((_pc > getStartPC()) && (_pc < getEndPC())) { - returnString = THROUGH; - } else if (_pc == getEndPC()) { - returnString = BOTTOM_ARROW; - } - } else { - if (_pc == getStartPC()) { - returnString = TOP_ARROW; - } else if ((_pc > getStartPC()) && (_pc < getEndPC())) { - returnString = THROUGH; - } else if (_pc == getEndPC()) { - returnString = isConditionalBranch() ? CONDITIONAL_START : UNCONDITIONAL_START; - } - } - return returnString; - } - - public String render(int _startPC, int _thisPC) { - String returnString = NONE; - if (isForward()) { - if (_startPC == getStartPC()) { - returnString = isConditionalBranch() ? CONDITIONAL_START : UNCONDITIONAL_START; - } else if ((_thisPC > getStartPC()) && (_startPC < getEndPC())) { - returnString = THROUGH; - } else if (_thisPC == getEndPC()) { - returnString = BOTTOM_ARROW; - } - } else { - if (_startPC == getStartPC()) { - returnString = TOP_ARROW; - } else if ((_thisPC > getStartPC()) && (_startPC < getEndPC())) { - returnString = THROUGH; - } else if (_thisPC == getEndPC()) { - returnString = isConditionalBranch() ? CONDITIONAL_START : UNCONDITIONAL_START; - } - } - - return returnString; - } - } - - public static String getLabel(Instruction instruction, boolean showNumber, boolean showExpressions, boolean verboseBytecodeLabels) { - - final ByteCode byteCode = instruction.getByteCode(); - final StringBuilder label = new StringBuilder(); - if (showNumber) { - label.append(String.format("%3d: ", instruction.getThisPC())); - } - - if (!showExpressions) { - final String byteCodeName = byteCode.getName(); - - if (!verboseBytecodeLabels) { - label.append(byteCodeName); - } else { - if (instruction instanceof ConditionalBranch16) { - final ConditionalBranch16 conditionalBranch16 = (ConditionalBranch16) instruction; - label.append(conditionalBranch16.getOperator().getText()); - label.append(" -> "); - label.append(conditionalBranch16.getTarget().getThisPC()); - } else if (instruction instanceof Branch) { - final Branch branch = (Branch) instruction; - label.append(" -> "); - label.append(branch.getTarget().getThisPC()); - } else if (instruction instanceof MethodCall) { - final MethodCall methodCall = (MethodCall) instruction; - label.append(methodCall.getConstantPoolMethodEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - label.append(" "); - label.append(methodCall.getConstantPoolMethodEntry().getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8()); - } else if (instruction instanceof OperatorInstruction) { - final OperatorInstruction operatorInstruction = (OperatorInstruction) instruction; - label.append(operatorInstruction.getOperator().getText() + "(" + byteCodeName + ")"); - } else if (instruction instanceof FieldReference) { - final FieldReference field = (FieldReference) instruction; - label.append(field.getConstantPoolFieldEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - label.append(field.getConstantPoolFieldEntry().getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8()); - } else if (instruction instanceof Constant) { - final Constant constant = (Constant) instruction; - final Object value = constant.getValue(); - if (value != null) { - label.append(value); - } else { - if (instruction instanceof I_ACONST_NULL) { - label.append("null"); - } else { - label.append(byteCodeName); - } - } - } else if (instruction instanceof AssignToLocalVariable) { - - final AssignToLocalVariable assignToLocalVariable = (AssignToLocalVariable) instruction; - final LocalVariableInfo info = assignToLocalVariable.getLocalVariableInfo(); - - if (assignToLocalVariable.isDeclaration()) { - label.append(ClassModel.convert(info.getVariableDescriptor())); - } - - label.append(info == null ? "?" : info.getVariableName()); - label.append("="); - - } else if (instruction instanceof LocalVariableTableIndexAccessor) { - final LocalVariableTableIndexAccessor localVariableAccessor = (LocalVariableTableIndexAccessor) instruction; - final LocalVariableInfo info = localVariableAccessor.getLocalVariableInfo(); - label.append(info.getVariableName()); - - } else if (instruction instanceof I_IINC) { - - label.append(instruction.getByteCode()); - label.append(" " + ((I_IINC) instruction).getDelta()); - label.append(" " + ((I_IINC) instruction).getLocalVariableInfo().getVariableName()); - } else if (instruction instanceof CompositeInstruction) { - label.append("composite "); - label.append(instruction.getByteCode()); - } else { - label.append(byteCodeName); - } - } - } else { - final StringWriter writer = new StringWriter(label); - try { - writer.writeInstruction(instruction); - } catch (final CodeGenException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - writer.write("// exception " + e.getMessage()); - } - } - - return (label.toString()); - } - - private static void appendFoldedInstruction(Table _sl, String _prefix, Instruction _instruction) { - _sl.data(_instruction.getThisPC()); - _sl.data(_prefix + InstructionHelper.getLabel(_instruction, false, false, true)); - final int startPc = _instruction.getStartPC(); - final int thisPc = _instruction.getThisPC(); - - final StringBuilder sb = new StringBuilder(); - for (final BranchVector branchInfo : getBranches(_instruction.getMethod())) { - sb.append(branchInfo.render(startPc, thisPc)); - } - - _sl.data(sb.toString()); - for (Instruction child = _instruction.getFirstChild(); child != null; child = child.getNextExpr()) { - appendFoldedInstruction(_sl, _prefix + " ", child); - } - } - - static void writeExpression(String _prefix, Instruction _instruction) { - System.out.println(_prefix + InstructionHelper.getLabel(_instruction, true, true, false)); - } - - static String getFoldedView(MethodModel _methodModel) { - final Table sl = new Table("%4d", " %s", " %s"); - sl.header(" pc", " expression", " branches"); - for (Instruction root = _methodModel.getExprHead(); root != null; root = root.getNextExpr()) { - appendFoldedInstruction(sl, "", root); - } - return (sl.toString()); - } - - static String createView(MethodModel _methodModel, String _msg, Instruction _head) { - final Table table = new Table("[%2d-%2d] ", "%-60s", "%s"); - for (Instruction root = _head; root != null; root = root.getNextExpr()) { - - final String label = InstructionHelper.getLabel(root, false, true, false); - final StringBuilder sb = new StringBuilder(); - for (final BranchVector branchInfo : getBranches(_methodModel)) { - sb.append(branchInfo.render(root.getThisPC(), root.getStartPC())); - } - table.data(root.getStartPC(), root.getThisPC()); - table.data(label); - table.data(sb); - - } - return (_msg + "{\n" + table.toString() + "}\n"); - } - - static String createView(MethodModel _methodModel, String _msg, Instruction _head, Instruction _tail, - int _pcForwardBranchTargetCounts[]) { - final Table table = new Table("[%2d-%2d] ", "%-40s", "%s", "%3d"); - - for (Instruction root = _head; root != null; root = root.getNextExpr()) { - final String label = InstructionHelper.getLabel(root, false, false, false); - final StringBuilder sb = new StringBuilder(); - for (final BranchVector branchInfo : getBranches(_methodModel)) { - sb.append(branchInfo.render(root.getThisPC(), root.getStartPC())); - } - table.data(root.getStartPC(), root.getThisPC()); - table.data(" " + label); - table.data(sb); - table.data(_pcForwardBranchTargetCounts[root.getStartPC()]); - } - final String label = InstructionHelper.getLabel(_tail, false, false, false); - final StringBuilder sb = new StringBuilder(); - for (final BranchVector branchInfo : getBranches(_methodModel)) { - sb.append(branchInfo.render(_tail.getThisPC(), _tail.getStartPC())); - } - table.data(_tail.getStartPC(), _tail.getThisPC()); - table.data("[" + label + "]"); - table.data(sb); - table.data(_pcForwardBranchTargetCounts[_tail.getStartPC()]); - return (_msg + "{\n" + table.toString() + "}\n"); - } - - static String getJavapView(MethodModel _methodModel) { - final Table table = new Table("%4d", "%4d", " %s", " %s"); - table.header("stack ", "pc ", " mnemonic", " branches"); - int stack = 0; - for (Instruction i = _methodModel.getPCHead(); i != null; i = i.getNextPC()) { - stack += i.getStackDelta(); - final int pc = i.getThisPC(); - table.data(stack); - table.data(pc); - table.data(InstructionHelper.getLabel(i, false, false, false)); - if (true) { - final StringBuilder sb = new StringBuilder(); - for (final BranchVector branchInfo : getBranches(_methodModel)) { - sb.append(branchInfo.render(pc)); - } - table.data(sb); - } - - } - return (table.toString()); - } - - private static Comparator branchInfoComparator = new Comparator(){ - @Override public int compare(BranchVector left, BranchVector right) { - final int value = left.getFrom().compareTo(right.getFrom()); - return (value); - } - - }; - - static List getBranches(MethodModel _methodModel) { - final List branchVectors = new ArrayList(); - - for (Instruction instruction = _methodModel.getPCHead(); instruction != null; instruction = instruction.getNextPC()) { - if (instruction.isBranch()) { - final Branch branch = (Branch) instruction; - final Instruction branchTarget = branch.getTarget(); - branchVectors.add(new BranchVector(branch, branchTarget)); - } - } - // Sort the branch vectors. The natural order is essentially by from address. Note that this is not the same as start address.. back edges would be the exceptions - Collections.sort(branchVectors, branchInfoComparator); - - return (branchVectors); - } - - void edump(StringBuilder _sb, Instruction i, boolean clone) { - final String label = InstructionHelper.getLabel(i, false, true, true); - - if (i instanceof CloneInstruction) { - edump(_sb, ((CloneInstruction) i).getReal(), true); - } else { - - if (i.producesStack()) { - _sb.append(" "); - } else { - _sb.append("! "); - } - - if (clone) { - _sb.append("*"); - } else { - _sb.append(" "); - } - _sb.append(i.getThisPC() + ":" + label); - } - - } - - void fdump(int _depth, Instruction i, boolean clone) { - final String label = i.getByteCode().getName();// InstructionHelper.getLabel(i, false, false, false); - - if (i instanceof CloneInstruction) { - fdump(_depth, ((CloneInstruction) i).getReal(), true); - } else { - if (_depth == 0) { - if (i.producesStack()) { - System.out.print(" "); - } else { - System.out.print("! "); - } - } - - if (clone) { - System.out.print("*"); - } else if (_depth == 0) { - System.out.print(" "); - } - System.out.print(i.getThisPC() + ":" + label); - } - if (i.getFirstChild() != null) { - // int child=0; - System.out.print("{"); - boolean comma = false; - for (Instruction ii = i.getFirstChild(); ii != null; ii = ii.getNextExpr()) { - if (comma) { - System.out.print(" ,"); - } - // System.out.print("<"+child+">"); - fdump(_depth + 1, ii, false); - comma = true; - // child++; - } - System.out.print("}"); - } - } - - void dump(String _indent, Instruction i, boolean clone) { - final String label = InstructionHelper.getLabel(i, true, false, false); - - if (i instanceof CloneInstruction) { - dump(_indent, ((CloneInstruction) i).getReal(), true); - } else { - System.out.println(_indent + (clone ? "*" : " ") + label); - } - for (Instruction ii = i.getFirstChild(); ii != null; ii = ii.getNextExpr()) { - dump(_indent + " ", ii, false); - - } - } - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/InstructionViewer.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/InstructionViewer.java deleted file mode 100644 index 6e80defb..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/InstructionViewer.java +++ /dev/null @@ -1,1117 +0,0 @@ -package com.amd.aparapi.internal.tool; - -import java.awt.BasicStroke; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.FontMetrics; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Polygon; -import java.awt.Rectangle; -import java.awt.RenderingHints; -import java.awt.Shape; -import java.awt.Stroke; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; -import java.awt.geom.AffineTransform; -import java.awt.geom.CubicCurve2D; -import java.awt.image.BufferedImage; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JMenu; -import javax.swing.JMenuBar; -import javax.swing.JMenuItem; -import javax.swing.JPanel; -import javax.swing.JToggleButton; -import javax.swing.JToolBar; -import javax.swing.SpringLayout; -import javax.swing.UIManager; -import javax.swing.UnsupportedLookAndFeelException; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import com.amd.aparapi.Config; -import com.amd.aparapi.internal.exception.AparapiException; -import com.amd.aparapi.internal.exception.ClassParseException; -import com.amd.aparapi.internal.instruction.Instruction; -import com.amd.aparapi.internal.instruction.InstructionSet.CompositeInstruction; -import com.amd.aparapi.internal.model.ClassModel; -import com.amd.aparapi.internal.model.Entrypoint; -import com.amd.aparapi.internal.model.MethodModel; -import com.amd.aparapi.internal.tool.InstructionViewer.Form.Check; -import com.amd.aparapi.internal.tool.InstructionViewer.Form.Template; -import com.amd.aparapi.internal.tool.InstructionViewer.Form.Toggle; - -public class InstructionViewer implements Config.InstructionListener{ - - public static abstract class Form { - public @interface OneOf { - String label(); - - String[] options(); - } - - public interface Template{ - } - - @Retention(RetentionPolicy.RUNTIME) public @interface List { - Class value(); - - } - - @Retention(RetentionPolicy.RUNTIME) public @interface Toggle { - String label(); - - String on(); - - String off(); - } - - @Retention(RetentionPolicy.RUNTIME) public @interface Check { - String label(); - } - - public final static int INSET = 5; - - private final T template; - - JPanel panel; - - private final SpringLayout layout = new SpringLayout(); - - void setBoolean(Field _field, boolean _value) { - try { - _field.setBoolean(template, _value); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - boolean getBoolean(Field _field) { - try { - return (_field.getBoolean(template)); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return (false); - } - - Object get(Field _field) { - try { - return (_field.get(template)); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return (null); - } - - public Form(T _template) { - template = _template; - panel = new JPanel(layout); - JComponent last = panel; - final Map fieldToLabelMap = new LinkedHashMap(); - Field fieldWithWidestLabel = null; - int fieldWithWidestLabelWidth = 0; - - // we need to know the widest Label so create the labels in one pass - for (final Field field : template.getClass().getFields()) { - String labelString = null; - - final Check checkAnnotation = field.getAnnotation(Check.class); - if (checkAnnotation != null) { - labelString = checkAnnotation.label(); - } else { - final Toggle toggleAnnotation = field.getAnnotation(Toggle.class); - if (toggleAnnotation != null) { - labelString = toggleAnnotation.label(); - } - } - if (labelString != null) { - final JLabel label = new JLabel(labelString); - panel.add(label); - - fieldToLabelMap.put(field, label); - if (labelString.length() > fieldWithWidestLabelWidth) { - fieldWithWidestLabel = field; - fieldWithWidestLabelWidth = labelString.length(); - } - } - } - - for (final Field field : fieldToLabelMap.keySet()) { - layout.putConstraint(SpringLayout.NORTH, fieldToLabelMap.get(field), INSET, (last == panel) ? SpringLayout.NORTH - : SpringLayout.SOUTH, last); - layout.putConstraint(SpringLayout.WEST, fieldToLabelMap.get(field), INSET, SpringLayout.WEST, panel); - JComponent newComponent = null; - - if (field.getType().isAssignableFrom(Boolean.TYPE)) { - final Field booleanField = field; - - final Toggle toggleAnnotation = field.getAnnotation(Toggle.class); - if (toggleAnnotation != null) { - final String toggleButtonOnLabel = toggleAnnotation.on(); - final String toggleButtonOffLabel = toggleAnnotation.off(); - final String toggleButtonLabel = getBoolean(field) ? toggleButtonOnLabel : toggleButtonOffLabel; - final JToggleButton toggleButton = new JToggleButton(toggleButtonLabel, getBoolean(field)); - toggleButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent _actionEvent) { - final JToggleButton toggleButton = ((JToggleButton) _actionEvent.getSource()); - // System.out.println("toggle toggle "+toggleButton); - if (toggleButton.getText().equals(toggleButtonOnLabel)) { - toggleButton.setText(toggleButtonOffLabel); - setBoolean(booleanField, false); - - } else { - toggleButton.setText(toggleButtonOnLabel); - setBoolean(booleanField, true); - - } - sync(); - - } - }); - newComponent = toggleButton; - } - final Check checkAnnotation = field.getAnnotation(Check.class); - if (checkAnnotation != null) { - final JCheckBox checkBox = new JCheckBox(); - checkBox.setSelected(getBoolean(field)); - - checkBox.addChangeListener(new ChangeListener(){ - - @Override public void stateChanged(ChangeEvent _changeEvent) { - - final JCheckBox checkBox = ((JCheckBox) _changeEvent.getSource()); - // System.out.println("check toggle "+checkBox); - setBoolean(booleanField, checkBox.isSelected()); - sync(); - - } - }); - newComponent = checkBox; - } - } - if (newComponent != null) { - panel.add(newComponent); - layout.putConstraint(SpringLayout.NORTH, newComponent, INSET, (last == panel) ? SpringLayout.NORTH - : SpringLayout.SOUTH, last); - layout.putConstraint(SpringLayout.WEST, newComponent, INSET, SpringLayout.EAST, - fieldToLabelMap.get(fieldWithWidestLabel)); - layout.putConstraint(SpringLayout.EAST, newComponent, INSET, SpringLayout.EAST, panel); - } - last = newComponent; - } - - layout.layoutContainer(panel); - - } - - public abstract void sync(); - - public Component getPanel() { - return (panel); - } - } - - public static final int VMARGIN = 2; - - public static final int HMARGIN = 2; - - public static final int HGAPROOT = 100; - - public static final int HGAP = 40; - - public static final int VGAP = 20; - - public static final int ARROWGAP = 5; - - public static final int EDGEGAP = 20; - - public static final int CURVEBOW = 20; - - public static class Options implements Template{ - - @Toggle(label = "Fold", on = "On", off = "Off") public boolean fold = true; - - @Check(label = "Fan Edges") public boolean edgeFan = true; - - @Check(label = "Curves") public boolean edgeCurve = false; - - @Check(label = "PC") public boolean showPc = true; - - @Check(label = "Bytecode Labels") public boolean verboseBytecodeLabels = false; - - @Check(label = "Collapse All") public boolean collapseAll = false; - - /* @Check(label = "Show expressions")*/public boolean showExpressions = false; - - } - - private static class XY{ - public XY(double _x, double _y) { - x = _x; - y = _y; - } - - double x, y; - } - - private static class View{ - AffineTransform offGraphicsTransform = new AffineTransform(); - - private double scale = 1; - - private double x; - - private double y; - - public double translatex(int _screenx) { - return ((_screenx - offGraphicsTransform.getTranslateX()) / offGraphicsTransform.getScaleX()); - - } - - public double screenx() { - return ((offGraphicsTransform.getScaleX() * x) + offGraphicsTransform.getTranslateX()); - } - - public double translatey(int _screeny) { - return ((_screeny - offGraphicsTransform.getTranslateY()) / offGraphicsTransform.getScaleY()); - } - - public double screeny() { - return ((offGraphicsTransform.getScaleY() * y) + offGraphicsTransform.getTranslateY()); - } - } - - private final JPanel container; - - private BufferedImage offscreen; - - private Dimension offscreensize; - - private Graphics2D offgraphics; - - public void dirty() { - dirty = true; - - container.repaint(); - } - - private boolean dirty = false; - - private final View view = new View(); - - private XY dragStart = null; - - public synchronized void draw(Graphics _g) { - - final Dimension containerSize = container.getSize(); - if (dirty || (offscreen == null) || (containerSize.width != offscreensize.width) - || (containerSize.height != offscreensize.height)) { - offscreensize = new Dimension(containerSize.width, containerSize.height); - offscreen = (BufferedImage) container.createImage(offscreensize.width, offscreensize.height); - - if (offgraphics != null) { - offgraphics.dispose(); - } - offgraphics = offscreen.createGraphics(); - - offgraphics.setFont(container.getFont()); - offgraphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - offgraphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - offgraphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); - // offgraphics.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE); - offgraphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON); - final AffineTransform offGraphicsTransform = new AffineTransform(); - offgraphics.setTransform(offGraphicsTransform); - offgraphics.setColor(container.getBackground()); - offgraphics.fillRect(0, 0, (offscreensize.width), (offscreensize.height)); - offGraphicsTransform.setToTranslation(view.screenx(), view.screeny()); - offGraphicsTransform.scale(view.scale, view.scale); - offgraphics.setTransform(offGraphicsTransform); - view.offGraphicsTransform = offGraphicsTransform; - dirty = false; - - } else { - offgraphics.setColor(container.getBackground()); - offgraphics.fillRect(0, 0, (offscreensize.width), (offscreensize.height)); - } - render(offgraphics); - _g.drawImage(offscreen, 0, 0, null); - - } - - public Component getContainer() { - return (container); - } - - public void text(Graphics2D _g, String _text, double _x, double _y) { - final FontMetrics fm = _g.getFontMetrics(); - _g.drawString(_text, (int) _x, (int) ((_y - fm.getAscent()) + fm.getHeight())); - - } - - public void text(Graphics2D _g, Color _color, String _text, double _x, double _y) { - final Color color = _g.getColor(); - _g.setColor(_color); - text(_g, _text, _x, _y); - _g.setColor(color); - - } - - public void line(Graphics2D _g, Stroke _stroke, double _x1, double _y1, double _x2, double _y2) { - final Stroke stroke = _g.getStroke(); - _g.setStroke(_stroke); - line(_g, _x1, _y1, _x2, _y2); - _g.setStroke(stroke); - } - - public void stroke(Graphics2D _g, Stroke _stroke, Shape _rect) { - final Stroke stroke = _g.getStroke(); - _g.setStroke(_stroke); - draw(_g, _rect); - _g.setStroke(stroke); - } - - public void fill(Graphics2D _g, Color _color, Shape _rect) { - final Color color = _g.getColor(); - _g.setColor(_color); - fill(_g, _rect); - _g.setColor(color); - } - - public void fillStroke(Graphics2D _g, Color _fillColor, Color _strokeColor, Stroke _stroke, Shape _rect) { - final Color color = _g.getColor(); - _g.setColor(_fillColor); - fill(_g, _rect); - _g.setColor(_strokeColor); - stroke(_g, _stroke, _rect); - _g.setColor(color); - } - - public void line(Graphics2D _g, double _x1, double _y1, double _x2, double _y2) { - _g.drawLine((int) _x1, (int) _y1, (int) _x2, (int) _y2); - } - - public void draw(Graphics2D _g, Shape _rectangle) { - _g.draw(_rectangle); - } - - public void fill(Graphics2D _g, Shape _rectangle) { - _g.fill(_rectangle); - } - - public Options config = new Options(); - - final private Color unselectedColor = Color.WHITE; - - final private Color selectedColor = Color.gray.brighter(); - - private final Stroke thickStroke = new BasicStroke((float) 2.0); - - private final Stroke thinStroke = new BasicStroke((float) 1.0); - - private final Stroke outlineStroke = new BasicStroke((float) 0.5); - - public Polygon arrowHeadOut = new Polygon(); - { - arrowHeadOut.addPoint(8, -4); - arrowHeadOut.addPoint(0, 0); - arrowHeadOut.addPoint(8, 4); - arrowHeadOut.addPoint(8, -4); - } - - Polygon arrowHeadIn = new Polygon(); - { - arrowHeadIn.addPoint(0, -4); - arrowHeadIn.addPoint(8, 0); - arrowHeadIn.addPoint(0, 4); - arrowHeadIn.addPoint(0, -4); - } - - public class InstructionView{ - - private final Instruction instruction; - - private Shape shape; - - public Instruction branchTarget; - - public Instruction collapsedBranchTarget; - - public String label; - - public boolean dim; - - public InstructionView(Instruction _instruction) { - instruction = _instruction; - } - - } - - private final Map locationToInstructionViewMap = new HashMap(); - - InstructionView getInstructionView(Instruction _instruction) { - - InstructionView instructionView = locationToInstructionViewMap.get(_instruction); - if (instructionView == null) { - locationToInstructionViewMap.put(_instruction, instructionView = new InstructionView(_instruction)); - - } - return (instructionView); - } - - double foldPlace(Graphics2D _g, InstructionView _instructionView, double _x, double _y, boolean _dim) { - _instructionView.dim = _dim; - final FontMetrics fm = _g.getFontMetrics(); - - _instructionView.label = InstructionHelper.getLabel(_instructionView.instruction, config.showPc, config.showExpressions, - config.verboseBytecodeLabels); - - final int w = fm.stringWidth(_instructionView.label) + HMARGIN; - final int h = fm.getHeight() + VMARGIN; - - double y = _y; - final double x = _x + w + (_instructionView.instruction.getRootExpr() == _instructionView.instruction ? HGAP : HGAP); - - if (!config.collapseAll && !config.showExpressions) { - - for (Instruction e = _instructionView.instruction.getFirstChild(); e != null; e = e.getNextExpr()) { - - y = foldPlace(_g, getInstructionView(e), x, y, _dim); - if (e != _instructionView.instruction.getLastChild()) { - y += VGAP; - } - } - - } - final double top = ((y + _y) / 2) - (h / 2); - _instructionView.shape = new Rectangle((int) _x, (int) top, w, h); - return (Math.max(_y, y)); - - } - - void foldRender(Graphics2D _g, InstructionView _instructionView) { - final Instruction instruction = _instructionView.instruction; - if (!config.collapseAll && !config.showExpressions) { - for (Instruction e = instruction.getFirstChild(); e != null; e = e.getNextExpr()) { - - foldRender(_g, getInstructionView(e)); - - } - } - if (_instructionView.dim) { - _g.setColor(unselectedColor); - } else { - _g.setColor(selectedColor); - } - _g.fill(_instructionView.shape); - _g.setColor(Color.black); - _g.setStroke(outlineStroke); - _g.draw(_instructionView.shape); - text(_g, _instructionView.label, _instructionView.shape.getBounds().getCenterX() - - (_instructionView.shape.getBounds().getWidth() / 2), _instructionView.shape.getBounds().getCenterY()); - - if (!config.collapseAll && !config.showExpressions) { - - if (config.edgeFan) { - - for (Instruction e = instruction.getFirstChild(); e != null; e = e.getNextExpr()) { - final InstructionView iv = getInstructionView(e); - final double x1 = _instructionView.shape.getBounds().getMaxX() + ARROWGAP; - - final double y1 = _instructionView.shape.getBounds().getCenterY(); - final double x2 = iv.shape.getBounds().getMinX() - 5; - final double y2 = iv.shape.getBounds().getCenterY(); - - if (config.edgeCurve) { - _g.draw(new CubicCurve2D.Double(x1, y1, x1 + CURVEBOW, y1, x2 - CURVEBOW, y2, x2, y2)); - } else { - final double dx = (x1 - x2); - final double dy = (y1 - y2); - - final AffineTransform transform = _g.getTransform(); - final double hypot = Math.hypot(dy, dx); - final double angle = Math.atan2(dy, dx); - _g.translate(x2, y2); - _g.rotate(angle); - line(_g, thickStroke, 0, 0, hypot, 0); - _g.fillPolygon(arrowHeadOut); - _g.setTransform(transform); - } - } - - } else { - - _g.setStroke(thickStroke); - if ((instruction.getFirstChild() != null) && (instruction.getFirstChild() != instruction.getLastChild())) { // >1 children - final InstructionView iv0 = getInstructionView(instruction.getFirstChild()); - final InstructionView ivn = getInstructionView(instruction.getLastChild()); - - final double midx = (_instructionView.shape.getBounds().getMaxX() + iv0.shape.getBounds().getMinX()) / 2; - line(_g, midx, iv0.shape.getBounds().getCenterY(), midx, ivn.shape.getBounds().getCenterY()); - line(_g, _instructionView.shape.getBounds().getMaxX() + ARROWGAP, _instructionView.shape.getBounds().getCenterY(), - midx, _instructionView.shape.getBounds().getCenterY()); - - for (Instruction e = instruction.getFirstChild(); e != null; e = e.getNextExpr()) { - final InstructionView iv = getInstructionView(e); - line(_g, midx, iv.shape.getBounds().getCenterY(), iv.shape.getBounds().getMinX() - ARROWGAP, iv.shape.getBounds() - .getCenterY()); - } - } else if (instruction.getFirstChild() != null) { // 1 child - final InstructionView iv = getInstructionView(instruction.getFirstChild()); - line(_g, _instructionView.shape.getBounds().getMaxX() + ARROWGAP, _instructionView.shape.getBounds().getCenterY(), - iv.shape.getBounds().getMinX() - ARROWGAP, iv.shape.getBounds().getCenterY()); - } - } - } - - } - - double flatPlace(Graphics2D _g, InstructionView _instructionView, double _x, double _y) { - final FontMetrics fm = _g.getFontMetrics(); - final Instruction instruction = _instructionView.instruction; - _instructionView.label = InstructionHelper.getLabel(instruction, config.showPc, config.showExpressions, - config.verboseBytecodeLabels); - - final int h = fm.getHeight() + 2; - final double top = (_y / 2) - (h / 2); - _instructionView.shape = new Rectangle((int) _x, (int) top, fm.stringWidth(_instructionView.label) + 2, h); - return (_y + h); - } - - void flatRender(Graphics2D _g, InstructionView _instructionView) { - _g.setColor(unselectedColor); - _g.fill(_instructionView.shape); - _g.setColor(Color.black); - stroke(_g, outlineStroke, _instructionView.shape); - text(_g, _instructionView.label, _instructionView.shape.getBounds().getCenterX() - - (_instructionView.shape.getBounds().getWidth() / 2), _instructionView.shape.getBounds().getCenterY()); - } - - ClassModel classModel = null; - - public InstructionViewer(Color _background, String _name) { - - try { - classModel = new ClassModel(Class.forName(_name)); - } catch (final ClassParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - container = new JPanel(){ - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override public void paintComponent(Graphics g) { - draw(g); - } - }; - container.setBackground(_background); - - final MouseAdapter mouseAdaptor = new MouseAdapter(){ - @Override public void mouseEntered(MouseEvent e) { - container.requestFocusInWindow(); - } - - @Override public void mouseDragged(MouseEvent e) { - // System.out.println("dragged"); - if (dragStart != null) { - view.x = view.translatex(e.getX()) - dragStart.x; - view.y = view.translatey(e.getY()) - dragStart.y; - dirty(); - } - - } - - @Override public void mousePressed(MouseEvent e) { - - if (e.getButton() == 1) { - dragStart = new XY(view.translatex(e.getX()), view.translatey(e.getY())); - dirty(); - - } else if (e.getButton() == 3) { - - if (select(view.translatex(e.getX()), view.translatey(e.getY()))) { - dirty(); - } - } - - } - - @Override public void mouseReleased(MouseEvent e) { - dragStart = null; - // container.repaint(); - } - - @Override public void mouseWheelMoved(MouseWheelEvent e) { - view.scale += e.getWheelRotation() / 10.0; - dirty(); - } - - }; - - final KeyAdapter keyAdaptor = new KeyAdapter(){ - @Override public void keyTyped(KeyEvent arg0) { - if ((arg0.getKeyChar() == '-') || (arg0.getKeyChar() == '+')) { - if (arg0.getKeyChar() == '-') { - view.scale -= .1; - } else { - view.scale += .1; - } - dirty(); - } - - } - - }; - container.addMouseMotionListener(mouseAdaptor); - container.addMouseListener(mouseAdaptor); - container.addMouseWheelListener(mouseAdaptor); - container.addKeyListener(keyAdaptor); - container.repaint(); - - } - - public InstructionViewer() { - - final JFrame frame = new JFrame(); - - final Color background = Color.WHITE; - final JPanel panel = new JPanel(new BorderLayout()); - final JMenuBar menuBar = new JMenuBar(); - - final JMenu fileMenu = new JMenu("File"); - fileMenu.setMnemonic(KeyEvent.VK_F); - final ActionListener closeActionListener = new ActionListener(){ - @Override public void actionPerformed(ActionEvent arg0) { - System.exit(1); - } - - }; - final ActionListener nextActionListener = new ActionListener(){ - @Override public void actionPerformed(ActionEvent arg0) { - doorbell.ring(); - - } - - }; - final JMenuItem closeMenuItem = new JMenuItem("Close"); - closeMenuItem.setMnemonic(KeyEvent.VK_C); - closeMenuItem.addActionListener(closeActionListener); - fileMenu.add(closeMenuItem); - menuBar.add(fileMenu); - menuBar.setEnabled(true); - frame.setJMenuBar(menuBar); - - // http://java.sun.com/docs/books/tutorial/uiswing/components/toolbar.html - final JToolBar toolBar = new JToolBar(); - final JButton closeButton = new JButton("Close"); - closeButton.addActionListener(closeActionListener); - toolBar.add(closeButton); - - final JButton nextButton = new JButton("Next"); - nextButton.addActionListener(nextActionListener); - toolBar.add(nextButton); - - panel.add(BorderLayout.PAGE_START, toolBar); - - container = new JPanel(){ - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override public void paintComponent(Graphics g) { - draw(g); - } - }; - container.setBackground(Color.WHITE); - - final MouseAdapter mouseAdaptor = new MouseAdapter(){ - @Override public void mouseEntered(MouseEvent e) { - container.requestFocusInWindow(); - } - - @Override public void mouseDragged(MouseEvent e) { - // System.out.println("dragged"); - if (dragStart != null) { - view.x = view.translatex(e.getX()) - dragStart.x; - view.y = view.translatey(e.getY()) - dragStart.y; - dirty(); - } - - } - - @Override public void mousePressed(MouseEvent e) { - - if (e.getButton() == 1) { - dragStart = new XY(view.translatex(e.getX()), view.translatey(e.getY())); - dirty(); - - } else if (e.getButton() == 3) { - - if (select(view.translatex(e.getX()), view.translatey(e.getY()))) { - dirty(); - } - } - - } - - @Override public void mouseReleased(MouseEvent e) { - dragStart = null; - // container.repaint(); - } - - @Override public void mouseWheelMoved(MouseWheelEvent e) { - view.scale += e.getWheelRotation() / 10.0; - dirty(); - } - - }; - - final KeyAdapter keyAdaptor = new KeyAdapter(){ - @Override public void keyTyped(KeyEvent arg0) { - if ((arg0.getKeyChar() == '-') || (arg0.getKeyChar() == '+')) { - if (arg0.getKeyChar() == '-') { - view.scale -= .1; - } else { - view.scale += .1; - } - dirty(); - } - - } - - }; - container.addMouseMotionListener(mouseAdaptor); - container.addMouseListener(mouseAdaptor); - container.addMouseWheelListener(mouseAdaptor); - container.addKeyListener(keyAdaptor); - container.repaint(); - - panel.add(BorderLayout.CENTER, container); - - final JPanel controls = new JPanel(new BorderLayout()); - - final Form form = new Form(config){ - @Override public void sync() { - dirty(); - } - }; - controls.add(form.getPanel()); - - controls.setPreferredSize(new Dimension(200, 500)); - panel.add(BorderLayout.EAST, controls); - frame.setBackground(background); - frame.getContentPane().add(panel); - frame.setPreferredSize(new Dimension(1024, 1000)); - frame.pack(); - frame.setVisible(true); - - } - - public boolean select(double _x, double _y) { - for (Instruction l = first; l != null; l = l.getNextPC()) { - final InstructionView iv = getInstructionView(l); - if ((iv.shape != null) && iv.shape.contains(_x, _y)) { - - return (true); - } - } - return (false); - } - - public void render(Graphics2D _g) { - if (first != null) { - - if (config.fold) { - double y = 100; - final Instruction firstRoot = first.getRootExpr(); - final List instructionViews = new ArrayList(); - - Instruction lastInstruction = null; - for (Instruction instruction = firstRoot; instruction != null; instruction = instruction.getNextExpr()) { - final InstructionView iv = getInstructionView(instruction); - iv.dim = false; - y = foldPlace(_g, iv, 100, y, false) + VGAP; - instructionViews.add(iv); - lastInstruction = instruction; - } - lastInstruction.getRootExpr(); - while (lastInstruction instanceof CompositeInstruction) { - lastInstruction = lastInstruction.getLastChild(); - } - for (Instruction instruction = lastInstruction.getNextPC(); instruction != null; instruction = instruction.getNextPC()) { - - final InstructionView iv = getInstructionView(instruction); - iv.dim = true; - y = foldPlace(_g, iv, 100, y, true) + VGAP; - instructionViews.add(iv); - - } - - _g.setColor(Color.black); - - for (final InstructionView instructionView : instructionViews) { - if (instructionView.instruction.isBranch()) { - final Instruction rootFromInstruction = instructionView.instruction; - final Instruction rootToInstruction = instructionView.instruction.asBranch().getTarget(); - final InstructionView fromIv = getInstructionView(rootFromInstruction); - final InstructionView toIv = getInstructionView(rootToInstruction); - edge(_g, Color.BLACK, fromIv, toIv, null, null); - } - } - - InstructionView last = null; - - for (final InstructionView instructionView : instructionViews) { - - foldRender(_g, instructionView); - if (last != null) { - line(_g, thickStroke, 120, last.shape.getBounds().getMaxY(), 120, instructionView.shape.getBounds().getMinY()); - } - foldRender(_g, instructionView); - last = instructionView; - } - - } else { - double y = 100; - for (Instruction l = first; l != null; l = l.getNextPC()) { - - y = flatPlace(_g, getInstructionView(l), 100, y) + VGAP; - - } - - _g.setColor(Color.black); - for (Instruction l = first; l != null; l = l.getNextPC()) { - if (l.isBranch()) { - final Instruction rootFromInstruction = l; - final Instruction rootToInstruction = l.asBranch().getTarget(); - final InstructionView fromIv = getInstructionView(rootFromInstruction); - final InstructionView toIv = getInstructionView(rootToInstruction); - - edge(_g, Color.BLACK, fromIv, toIv, null, null); - } - - } - - InstructionView last = null; - for (Instruction l = first; l != null; l = l.getNextPC()) { - final InstructionView iv = getInstructionView(l); - - if (last != null) { - line(_g, thickStroke, 120, last.shape.getBounds().getMaxY(), 120, iv.shape.getBounds().getMinY()); - } - flatRender(_g, iv); - last = iv; - } - } - } - - } - - public void edge(Graphics2D _g, Color _color, InstructionView _branch, InstructionView _target, String _endLabel, - String _startLabel) { - - final int delta = _target.instruction.getThisPC() - _branch.instruction.getThisPC(); - final int adjust = 7 + Math.abs(delta); - final double y1 = (int) _branch.shape.getBounds().getMaxY(); - if (_target.shape != null) { - _g.setStroke(thinStroke); - final Color old = _g.getColor(); - _g.setColor(_color); - final double y2 = (int) _target.shape.getBounds().getMinY(); - if (delta > 0) { - - final double x1 = (int) _branch.shape.getBounds().getMinX() - EDGEGAP; - final double x2 = (int) _target.shape.getBounds().getMinX() - EDGEGAP; - - _g.draw(new CubicCurve2D.Double(x1, y1, x1 - adjust, y1, x1 - adjust, y2, x2, y2)); - - final AffineTransform transform = _g.getTransform(); - _g.translate(x2 - 5, y2); - _g.fillPolygon(arrowHeadIn); - _g.setTransform(transform); - - } else { - - final double x1 = (int) _branch.shape.getBounds().getMaxX() + EDGEGAP; - final double x2 = (int) _target.shape.getBounds().getMaxX() + EDGEGAP; - - _g.draw(new CubicCurve2D.Double(x1, y1, Math.max(x1, x2) + adjust, y1, Math.max(x1, x2) + adjust, y2, x2, y2)); - final AffineTransform transform = _g.getTransform(); - - _g.translate(x2 - 5, y2); - _g.fillPolygon(arrowHeadOut); - _g.setTransform(transform); - - } - _g.setColor(old); - } - } - - volatile Instruction first = null; - - volatile Instruction current = null; - - @Override public void showAndTell(String message, Instruction head, Instruction _instruction) { - - if (first == null) { - first = head; - } - current = _instruction; - dirty(); - doorbell.snooze(); - - } - - public static class DoorBell{ - volatile boolean notified = false; - - public synchronized void snooze() { - while (!notified) { - try { - this.wait(); - } catch (final InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - notified = false; - } - - public synchronized void ring() { - notified = true; - notify(); - } - - } - - public static DoorBell doorbell = new DoorBell(); - - public static void main(String[] _args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, - UnsupportedLookAndFeelException, AparapiException { - - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - - final JFrame frame = new JFrame(); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - final Color background = Color.WHITE; - final JPanel panel = new JPanel(new BorderLayout()); - final JMenuBar menuBar = new JMenuBar(); - - final JMenu fileMenu = new JMenu("File"); - fileMenu.setMnemonic(KeyEvent.VK_F); - final ActionListener closeActionListener = new ActionListener(){ - @Override public void actionPerformed(ActionEvent arg0) { - System.exit(1); - } - - }; - final ActionListener nextActionListener = new ActionListener(){ - @Override public void actionPerformed(ActionEvent arg0) { - doorbell.ring(); - - } - - }; - final JMenuItem closeMenuItem = new JMenuItem("Close"); - closeMenuItem.setMnemonic(KeyEvent.VK_C); - closeMenuItem.addActionListener(closeActionListener); - fileMenu.add(closeMenuItem); - menuBar.add(fileMenu); - menuBar.setEnabled(true); - frame.setJMenuBar(menuBar); - - final InstructionViewer instructionViewer = new InstructionViewer(background, _args[0]); - - Config.instructionListener = instructionViewer; - // http://java.sun.com/docs/books/tutorial/uiswing/components/toolbar.html - final JToolBar toolBar = new JToolBar(); - final JButton closeButton = new JButton("Close"); - closeButton.addActionListener(closeActionListener); - toolBar.add(closeButton); - - final JButton nextButton = new JButton("Next"); - nextButton.addActionListener(nextActionListener); - toolBar.add(nextButton); - - panel.add(BorderLayout.PAGE_START, toolBar); - - panel.add(BorderLayout.CENTER, instructionViewer.getContainer()); - - final JPanel controls = new JPanel(new BorderLayout()); - - final Form form = new Form(instructionViewer.config){ - @Override public void sync() { - instructionViewer.dirty(); - } - }; - controls.add(form.getPanel()); - - controls.setPreferredSize(new Dimension(200, 500)); - panel.add(BorderLayout.EAST, controls); - frame.setBackground(background); - frame.getContentPane().add(panel); - frame.setPreferredSize(new Dimension(800, 1000)); - frame.pack(); - frame.setVisible(true); - - (new Thread(new Runnable(){ - - @Override public void run() { - - Entrypoint entrypoint; - try { - entrypoint = instructionViewer.classModel.getEntrypoint(); - final MethodModel method = entrypoint.getMethodModel(); - } catch (final AparapiException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - })).start(); - - } - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/package-info.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/package-info.java deleted file mode 100644 index 6f4321bf..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/tool/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * - */ -package com.amd.aparapi.internal.tool; \ No newline at end of file diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/util/OpenCLUtil.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/util/OpenCLUtil.java deleted file mode 100644 index cb027035..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/util/OpenCLUtil.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.amd.aparapi.internal.util; - -import java.util.List; - -import com.amd.aparapi.internal.opencl.OpenCLPlatform; - -/** - * This utility class encapsulates the necessary actions required to query underlying OpenCL information - */ -public class OpenCLUtil{ - - /** - * Retrieve a list of available OpenCL Platforms - * - * @return Available OpenCL Platforms - */ - public static List getOpenCLPlatforms() { - final OpenCLPlatform ocp = new OpenCLPlatform(); - return ocp.getOpenCLPlatforms(); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/util/UnsafeWrapper.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/util/UnsafeWrapper.java deleted file mode 100644 index 970db5ac..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/util/UnsafeWrapper.java +++ /dev/null @@ -1,413 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.util; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -/** - * A wrapper around sun.misc.Unsafe for handling atomic operations, copies from fields to arrays and vice versa. - * - * We avoid using sun.misc.Unsafe directly using reflection, mostly just to avoid getting 'unsafe' compiler errors. - * - * This might need to be changed if we start to see performance issues. - * - * @author gfrost - * - */ - -public class UnsafeWrapper{ - - private static Object unsafe; - - private static Method getIntVolatileMethod; - - private static Method arrayBaseOffsetMethod; - - private static Method arrayIndexScaleMethod; - - private static Method getObjectMethod; - - private static Method getIntMethod; - - private static Method getFloatMethod; - - private static Method getByteMethod; - - private static Method getBooleanMethod; - - private static Method getLongMethod; - - private static Method objectFieldOffsetMethod; - - private static Method putBooleanMethod; - - private static Method putIntMethod; - - private static Method putFloatMethod; - - private static Method putDoubleMethod; - - private static Method putByteMethod; - - private static Method putLongMethod; - - private static Method compareAndSwapIntMethod; - - static { - try { - final Class uc = Class.forName("sun.misc.Unsafe"); - - final Field field = uc.getDeclaredField("theUnsafe"); - field.setAccessible(true); - unsafe = field.get(uc); - getIntVolatileMethod = uc.getDeclaredMethod("getIntVolatile", Object.class, long.class); - arrayBaseOffsetMethod = uc.getDeclaredMethod("arrayBaseOffset", Class.class); - arrayIndexScaleMethod = uc.getDeclaredMethod("arrayIndexScale", Class.class); - getObjectMethod = uc.getDeclaredMethod("getObject", Object.class, long.class); - getIntMethod = uc.getDeclaredMethod("getInt", Object.class, long.class); - getFloatMethod = uc.getDeclaredMethod("getFloat", Object.class, long.class); - getByteMethod = uc.getDeclaredMethod("getByte", Object.class, long.class); - getBooleanMethod = uc.getDeclaredMethod("getBoolean", Object.class, long.class); - getLongMethod = uc.getDeclaredMethod("getLong", Object.class, long.class); - objectFieldOffsetMethod = uc.getDeclaredMethod("objectFieldOffset", Field.class); - putBooleanMethod = uc.getDeclaredMethod("putBoolean", Object.class, long.class, boolean.class); - putIntMethod = uc.getDeclaredMethod("putInt", Object.class, long.class, int.class); - putFloatMethod = uc.getDeclaredMethod("putFloat", Object.class, long.class, float.class); - putDoubleMethod = uc.getDeclaredMethod("putDouble", Object.class, long.class, double.class); - putLongMethod = uc.getDeclaredMethod("putLong", Object.class, long.class, long.class); - putByteMethod = uc.getDeclaredMethod("putByte", Object.class, long.class, byte.class); - compareAndSwapIntMethod = uc.getDeclaredMethod("compareAndSwapInt", Object.class, long.class, int.class, int.class); - } catch (final SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final NoSuchFieldException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static int atomicAdd(int[] _arr, int _index, int _delta) { - if ((_index < 0) || (_index >= _arr.length)) { - throw new IndexOutOfBoundsException("index " + _index); - } - - final long rawIndex = intArrayBase + ((long) _index * intArrayScale); - while (true) { - int current; - try { - current = (Integer) getIntVolatileMethod.invoke(unsafe, _arr, rawIndex); - final int next = current + _delta; - if ((Boolean) compareAndSwapIntMethod.invoke(unsafe, _arr, rawIndex, current, next)) { - return current; - } - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - - public static int arrayBaseOffset(Class _arrayClass) { - int offset = 0; - - try { - offset = (Integer) (arrayBaseOffsetMethod.invoke(unsafe, _arrayClass)); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - return (offset); - } - - public static int arrayIndexScale(Class _arrayClass) { - int scale = 0; - try { - scale = (Integer) (arrayIndexScaleMethod.invoke(unsafe, _arrayClass)); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return scale; - } - - private static int intArrayBase = arrayBaseOffset(int[].class); - - private static int intArrayScale = arrayIndexScale(int[].class); - - public static Object getObject(Object _object, long _offset) { - Object object = null; - try { - object = getObjectMethod.invoke(unsafe, _object, _offset); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return (object); - } - - public static int getInt(Object _object, long _offset) { - int value = 0; - try { - value = (Integer) getIntMethod.invoke(unsafe, _object, _offset); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public static float getFloat(Object _object, long _offset) { - float value = 0; - try { - value = (Float) getFloatMethod.invoke(unsafe, _object, _offset); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public static byte getByte(Object _object, long _offset) { - byte value = 0; - try { - value = (Byte) getByteMethod.invoke(unsafe, _object, _offset); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public static boolean getBoolean(Object _object, long _offset) { - boolean value = false; - try { - value = (Boolean) getBooleanMethod.invoke(unsafe, _object, _offset); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public static long getLong(Object _object, long _offset) { - long value = 0; - try { - value = (Long) getLongMethod.invoke(unsafe, _object, _offset); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public static void putBoolean(Object _object, long _offset, boolean _boolean) { - try { - putBooleanMethod.invoke(unsafe, _object, _offset, _boolean); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void putFloat(Object _object, long _offset, float _float) { - try { - putFloatMethod.invoke(unsafe, _object, _offset, _float); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void putInt(Object _object, long _offset, int _int) { - try { - putIntMethod.invoke(unsafe, _object, _offset, _int); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void putDouble(Object _object, long _offset, double _double) { - try { - putDoubleMethod.invoke(unsafe, _object, _offset, _double); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void putByte(Object _object, long _offset, byte _byte) { - try { - putByteMethod.invoke(unsafe, _object, _offset, _byte); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static void putLong(Object _object, long _offset, long _long) { - try { - putLongMethod.invoke(unsafe, _object, _offset, _long); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static long objectFieldOffset(Field _field) { - long offset = 0l; - try { - offset = (Long) objectFieldOffsetMethod.invoke(unsafe, _field); - } catch (final IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return offset; - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/writer/BlockWriter.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/writer/BlockWriter.java deleted file mode 100644 index 9e9efc63..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/writer/BlockWriter.java +++ /dev/null @@ -1,770 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.internal.writer; - -import com.amd.aparapi.*; -import com.amd.aparapi.internal.exception.*; -import com.amd.aparapi.internal.instruction.*; -import com.amd.aparapi.internal.instruction.BranchSet.*; -import com.amd.aparapi.internal.instruction.InstructionSet.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.*; -import com.amd.aparapi.internal.model.ClassModel.*; -import com.amd.aparapi.internal.model.*; - -import java.util.*; - -/** - * Base abstract class for converting Aparapi IR to text.
      - * - * - * @author gfrost - * - */ - -public abstract class BlockWriter{ - - public final static String arrayLengthMangleSuffix = "__javaArrayLength"; - public final static String arrayDimMangleSuffix = "__javaArrayDimension"; - - public abstract void write(String _string); - - public void writeln(String _string) { - write(_string); - newLine(); - } - - public int indent = 0; - - public void in() { - indent++; - } - - public void out() { - indent--; - } - - public void newLine() { - write("\n"); - for (int i = 0; i < indent; i++) { - write(" "); - } - } - - public void writeConditionalBranch16(ConditionalBranch16 _branch16, boolean _invert) throws CodeGenException { - - if (_branch16 instanceof If) { - final If iff = (If) _branch16; - - writeInstruction(iff.getLhs()); - write(_branch16.getOperator().getText(_invert)); - writeInstruction(iff.getRhs()); - } else if (_branch16 instanceof I_IFNULL) { - final I_IFNULL iff = (I_IFNULL) _branch16; - writeInstruction(iff.getFirstChild()); - - if (_invert) { - write(" != NULL"); - } else { - write(" == NULL"); - } - - } else if (_branch16 instanceof I_IFNONNULL) { - final I_IFNONNULL iff = (I_IFNONNULL) _branch16; - writeInstruction(iff.getFirstChild()); - - if (_invert) { - write(" == NULL"); - } else { - write(" != NULL"); - } - } else if (_branch16 instanceof IfUnary) { - final IfUnary branch16 = (IfUnary) _branch16; - final Instruction comparison = branch16.getUnary(); - final ByteCode comparisonByteCode = comparison.getByteCode(); - final String comparisonOperator = _branch16.getOperator().getText(_invert); - - switch (comparisonByteCode) { - case FCMPG: - case DCMPG: - case FCMPL: - case DCMPL: - if (Config.verboseComparitor) { - write("/* bytecode=" + comparisonByteCode.getName() + " invert=" + _invert + "*/"); - } - writeInstruction(comparison.getFirstChild()); - write(comparisonOperator); - writeInstruction(comparison.getLastChild()); - break; - default: - if (Config.verboseComparitor) { - write("/* default bytecode=" + comparisonByteCode.getName() + " invert=" + _invert + "*/"); - } - writeInstruction(comparison); - write(comparisonOperator); - write("0"); - } - } - } - - public void writeComposite(CompositeInstruction instruction) throws CodeGenException { - if (instruction instanceof CompositeArbitraryScopeInstruction) { - newLine(); - - writeBlock(instruction.getFirstChild(), null); - } else if (instruction instanceof CompositeIfInstruction) { - newLine(); - write("if ("); - final Instruction blockStart = writeConditional(instruction.getBranchSet()); - - write(")"); - writeBlock(blockStart, null); - } else if (instruction instanceof CompositeIfElseInstruction) { - newLine(); - write("if ("); - final Instruction blockStart = writeConditional(instruction.getBranchSet()); - write(")"); - Instruction elseGoto = blockStart; - while (!(elseGoto.isBranch() && elseGoto.asBranch().isUnconditional())) { - elseGoto = elseGoto.getNextExpr(); - } - writeBlock(blockStart, elseGoto); - write(" else "); - writeBlock(elseGoto.getNextExpr(), null); - } else if (instruction instanceof CompositeForSunInstruction) { - newLine(); - write("for ("); - Instruction topBranch = instruction.getFirstChild(); - if (topBranch instanceof AssignToLocalVariable) { - writeInstruction(topBranch); - topBranch = topBranch.getNextExpr(); - } - write("; "); - final BranchSet branchSet = instruction.getBranchSet(); - final Instruction blockStart = writeConditional(branchSet); - - final Instruction lastGoto = instruction.getLastChild(); - - if (branchSet.getFallThrough() == lastGoto) { - // empty body no delta! - write(";){}"); - } else { - final Instruction delta = lastGoto.getPrevExpr(); - write("; "); - if (!(delta instanceof CompositeInstruction)) { - writeInstruction(delta); - write(")"); - writeBlock(blockStart, delta); - } else { - write("){"); - in(); - writeSequence(blockStart, delta); - - newLine(); - writeSequence(delta, delta.getNextExpr()); - out(); - newLine(); - write("}"); - - } - } - - } else if (instruction instanceof CompositeWhileInstruction) { - newLine(); - write("while ("); - final BranchSet branchSet = instruction.getBranchSet(); - final Instruction blockStart = writeConditional(branchSet); - write(")"); - final Instruction lastGoto = instruction.getLastChild(); - writeBlock(blockStart, lastGoto); - - } else if (instruction instanceof CompositeEmptyLoopInstruction) { - newLine(); - write("for ("); - Instruction topBranch = instruction.getFirstChild(); - if (topBranch instanceof AssignToLocalVariable) { - writeInstruction(topBranch); - topBranch = topBranch.getNextExpr(); - } - write("; "); - writeConditional(instruction.getBranchSet()); - write(";){}"); - - } else if (instruction instanceof CompositeForEclipseInstruction) { - newLine(); - write("for ("); - Instruction topGoto = instruction.getFirstChild(); - if (topGoto instanceof AssignToLocalVariable) { - writeInstruction(topGoto); - topGoto = topGoto.getNextExpr(); - } - write("; "); - Instruction last = instruction.getLastChild(); - while (last.getPrevExpr().isBranch()) { - last = last.getPrevExpr(); - } - writeConditional(instruction.getBranchSet(), true); - write("; "); - final Instruction delta = last.getPrevExpr(); - if (!(delta instanceof CompositeInstruction)) { - writeInstruction(delta); - write(")"); - writeBlock(topGoto.getNextExpr(), delta); - } else { - write("){"); - in(); - writeSequence(topGoto.getNextExpr(), delta); - - newLine(); - writeSequence(delta, delta.getNextExpr()); - out(); - newLine(); - write("}"); - - } - - } else if (instruction instanceof CompositeDoWhileInstruction) { - newLine(); - write("do"); - Instruction blockStart = instruction.getFirstChild(); - Instruction blockEnd = instruction.getLastChild(); - writeBlock(blockStart, blockEnd); - write("while("); - writeConditional(((CompositeInstruction) instruction).getBranchSet(), true); - write(");"); - newLine(); - } - } - - public void writeSequence(Instruction _first, Instruction _last) throws CodeGenException { - - for (Instruction instruction = _first; instruction != _last; instruction = instruction.getNextExpr()) { - if (instruction instanceof CompositeInstruction) { - writeComposite((CompositeInstruction) instruction); - } else if (!instruction.getByteCode().equals(ByteCode.NONE)) { - newLine(); - writeInstruction(instruction); - write(";"); - - } - } - - } - - protected void writeGetterBlock(FieldEntry accessorVariableFieldEntry) { - write("{"); - in(); - newLine(); - write("return this->"); - write(accessorVariableFieldEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - write(";"); - out(); - newLine(); - - write("}"); - } - - public void writeBlock(Instruction _first, Instruction _last) throws CodeGenException { - write("{"); - in(); - writeSequence(_first, _last); - out(); - newLine(); - - write("}"); - } - - public Instruction writeConditional(BranchSet _branchSet) throws CodeGenException { - return (writeConditional(_branchSet, false)); - } - - public Instruction writeConditional(BranchSet _branchSet, boolean _invert) throws CodeGenException { - - final LogicalExpressionNode logicalExpression = _branchSet.getLogicalExpression(); - if (!_invert) { - logicalExpression.invert(); - } - write(logicalExpression); - return (_branchSet.getLast().getNextExpr()); - } - - public void write(LogicalExpressionNode _node) throws CodeGenException { - if (_node instanceof SimpleLogicalExpressionNode) { - final SimpleLogicalExpressionNode sn = (SimpleLogicalExpressionNode) _node; - - writeConditionalBranch16((ConditionalBranch16) sn.getBranch(), sn.isInvert()); - } else { - final CompoundLogicalExpressionNode ln = (CompoundLogicalExpressionNode) _node; - boolean needParenthesis = false; - final CompoundLogicalExpressionNode parent = (CompoundLogicalExpressionNode) ln.getParent(); - if (parent != null) { - if (!ln.isAnd() && parent.isAnd()) { - needParenthesis = true; - } - } - if (needParenthesis) { - - write("("); - } - write(ln.getLhs()); - write(ln.isAnd() ? " && " : " || "); - write(ln.getRhs()); - if (needParenthesis) { - - write(")"); - } - } - } - - public String convertType(String _typeDesc, boolean useClassModel) { - return (_typeDesc); - } - - public String convertCast(String _cast) { - // Strip parens off cast - //System.out.println("cast = " + _cast); - final String raw = convertType(_cast.substring(1, _cast.length() - 1), false); - return ("(" + raw + ")"); - } - - public void writeInstruction(Instruction _instruction) throws CodeGenException { - if (_instruction instanceof CompositeIfElseInstruction) { - write("("); - final Instruction lhs = writeConditional(((CompositeInstruction) _instruction).getBranchSet()); - write(")?"); - writeInstruction(lhs); - write(":"); - writeInstruction(lhs.getNextExpr().getNextExpr()); - } else if (_instruction instanceof CompositeInstruction) { - writeComposite((CompositeInstruction) _instruction); - - } else if (_instruction instanceof AssignToLocalVariable) { - final AssignToLocalVariable assignToLocalVariable = (AssignToLocalVariable) _instruction; - - final LocalVariableInfo localVariableInfo = assignToLocalVariable.getLocalVariableInfo(); - if (assignToLocalVariable.isDeclaration()) { - final String descriptor = localVariableInfo.getVariableDescriptor(); - // Arrays always map to __global arrays - if (descriptor.startsWith("[")) { - write(" __global "); - } - write(convertType(descriptor, true)); - } - if (localVariableInfo == null) { - throw new CodeGenException("outOfScope" + _instruction.getThisPC() + " = "); - } else { - write(localVariableInfo.getVariableName() + " = "); - } - - for (Instruction operand = _instruction.getFirstChild(); operand != null; operand = operand.getNextExpr()) { - writeInstruction(operand); - } - - } else if (_instruction instanceof AssignToArrayElement) { - final AssignToArrayElement arrayAssignmentInstruction = (AssignToArrayElement) _instruction; - writeInstruction(arrayAssignmentInstruction.getArrayRef()); - write("["); - writeInstruction(arrayAssignmentInstruction.getArrayIndex()); - write("]"); - write(" "); - write(" = "); - writeInstruction(arrayAssignmentInstruction.getValue()); - } else if (_instruction instanceof AccessArrayElement) { - - //we're getting an element from an array - //if the array is a primitive then we just return the value - //so the generated code looks like - //arrayName[arrayIndex]; - //but if the array is an object, or multidimensional array, then we want to return - //a pointer to our index our position in the array. The code will look like - //&(arrayName[arrayIndex * this->arrayNameLen_dimension] - // - final AccessArrayElement arrayLoadInstruction = (AccessArrayElement) _instruction; - - //object array, get address - if(arrayLoadInstruction instanceof I_AALOAD) { - write("(&"); - } - writeInstruction(arrayLoadInstruction.getArrayRef()); - write("["); - writeInstruction(arrayLoadInstruction.getArrayIndex()); - - //object array, find the size of each object in the array - //for 2D arrays, this size is the size of a row. - if(arrayLoadInstruction instanceof I_AALOAD) { - int dim = 0; - Instruction load = arrayLoadInstruction.getArrayRef(); - while(load instanceof I_AALOAD) { - load = load.getFirstChild(); - dim++; - } - - String arrayName = ((AccessInstanceField)load).getConstantPoolFieldEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - write(" * this->" + arrayName + arrayDimMangleSuffix+dim); - } - - write("]"); - - //object array, close parentheses - if(arrayLoadInstruction instanceof I_AALOAD) { - write(")"); - } - } else if (_instruction instanceof AccessField) { - final AccessField accessField = (AccessField) _instruction; - if (accessField instanceof AccessInstanceField) { - Instruction accessInstanceField = ((AccessInstanceField) accessField).getInstance(); - if (accessInstanceField instanceof CloneInstruction) { - accessInstanceField = ((CloneInstruction) accessInstanceField).getReal(); - } - if (!(accessInstanceField instanceof I_ALOAD_0)) { - writeInstruction(accessInstanceField); - write("."); - } else { - writeThisRef(); - } - } - write(accessField.getConstantPoolFieldEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - - } else if (_instruction instanceof I_ARRAYLENGTH) { - - //getting the length of an array. - //if this is a primitive array, then this is trivial - //if we're getting an object array, then we need to find what dimension - //we're looking at - int dim = 0; - Instruction load = _instruction.getFirstChild(); - while(load instanceof I_AALOAD) { - load = load.getFirstChild(); - dim++; - } - final AccessInstanceField child = (AccessInstanceField) load; - final String arrayName = child.getConstantPoolFieldEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - write("this->" + arrayName + arrayLengthMangleSuffix + dim); - } else if (_instruction instanceof AssignToField) { - final AssignToField assignedField = (AssignToField) _instruction; - - if (assignedField instanceof AssignToInstanceField) { - final Instruction accessInstanceField = ((AssignToInstanceField) assignedField).getInstance().getReal(); - - if (!(accessInstanceField instanceof I_ALOAD_0)) { - writeInstruction(accessInstanceField); - write("."); - } else { - writeThisRef(); - } - } - write(assignedField.getConstantPoolFieldEntry().getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - write("="); - writeInstruction(assignedField.getValueToAssign()); - } else if (_instruction instanceof Constant) { - final Constant constantInstruction = (Constant) _instruction; - final Object value = constantInstruction.getValue(); - - if (value instanceof Float) { - - final Float f = (Float) value; - if (f.isNaN()) { - write("NAN"); - } else if (f.isInfinite()) { - if (f < 0) { - write("-"); - } - write("INFINITY"); - } else { - write(value.toString()); - write("f"); - } - } else if (value instanceof Double) { - - final Double d = (Double) value; - if (d.isNaN()) { - write("NAN"); - } else if (d.isInfinite()) { - if (d < 0) { - write("-"); - } - write("INFINITY"); - } else { - write(value.toString()); - } - } else { - write(value.toString()); - if (value instanceof Long) { - write("L"); - } - } - - } else if (_instruction instanceof AccessLocalVariable) { - final AccessLocalVariable localVariableLoadInstruction = (AccessLocalVariable) _instruction; - final LocalVariableInfo localVariable = localVariableLoadInstruction.getLocalVariableInfo(); - write(localVariable.getVariableName()); - } else if (_instruction instanceof I_IINC) { - final I_IINC location = (I_IINC) _instruction; - final LocalVariableInfo localVariable = location.getLocalVariableInfo(); - final int adjust = location.getAdjust(); - - write(localVariable.getVariableName()); - if (adjust == 1) { - write("++"); - } else if (adjust == -1) { - write("--"); - } else if (adjust > 1) { - write("+=" + adjust); - } else if (adjust < -1) { - write("-=" + (-adjust)); - } - } else if (_instruction instanceof BinaryOperator) { - final BinaryOperator binaryInstruction = (BinaryOperator) _instruction; - final Instruction parent = binaryInstruction.getParentExpr(); - boolean needsParenthesis = true; - - if (parent instanceof AssignToLocalVariable) { - needsParenthesis = false; - } else if (parent instanceof AssignToField) { - needsParenthesis = false; - } else if (parent instanceof AssignToArrayElement) { - needsParenthesis = false; - } else { - /** - if (parent instanceof BinaryOperator) { - BinaryOperator parentBinaryOperator = (BinaryOperator) parent; - if (parentBinaryOperator.getOperator().ordinal() > binaryInstruction.getOperator().ordinal()) { - needsParenthesis = false; - } - } - **/ - } - - if (needsParenthesis) { - write("("); - } - - writeInstruction(binaryInstruction.getLhs()); - - write(" " + binaryInstruction.getOperator().getText() + " "); - writeInstruction(binaryInstruction.getRhs()); - - if (needsParenthesis) { - write(")"); - } - - } else if (_instruction instanceof CastOperator) { - final CastOperator castInstruction = (CastOperator) _instruction; - // write("("); - write(convertCast(castInstruction.getOperator().getText())); - - writeInstruction(castInstruction.getUnary()); - // write(")"); - } else if (_instruction instanceof UnaryOperator) { - final UnaryOperator unaryInstruction = (UnaryOperator) _instruction; - // write("("); - write(unaryInstruction.getOperator().getText()); - - writeInstruction(unaryInstruction.getUnary()); - // write(")"); - } else if (_instruction instanceof Return) { - - final Return ret = (Return) _instruction; - write("return"); - if (ret.getStackConsumeCount() > 0) { - write("("); - writeInstruction(ret.getFirstChild()); - write(")"); - } - - } else if (_instruction instanceof MethodCall) { - final MethodCall methodCall = (MethodCall) _instruction; - - final MethodEntry methodEntry = methodCall.getConstantPoolMethodEntry(); - - writeMethod(methodCall, methodEntry); - } else if (_instruction.getByteCode().equals(ByteCode.CLONE)) { - final CloneInstruction cloneInstruction = (CloneInstruction) _instruction; - writeInstruction(cloneInstruction.getReal()); - } else if (_instruction.getByteCode().equals(ByteCode.INCREMENT)) { - final IncrementInstruction incrementInstruction = (IncrementInstruction) _instruction; - - if (incrementInstruction.isPre()) { - if (incrementInstruction.isInc()) { - write("++"); - } else { - write("--"); - } - } - - writeInstruction(incrementInstruction.getFieldOrVariableReference()); - if (!incrementInstruction.isPre()) { - if (incrementInstruction.isInc()) { - write("++"); - } else { - write("--"); - } - } - } else if (_instruction.getByteCode().equals(ByteCode.MULTI_ASSIGN)) { - final MultiAssignInstruction multiAssignInstruction = (MultiAssignInstruction) _instruction; - AssignToLocalVariable from = (AssignToLocalVariable) multiAssignInstruction.getFrom(); - final AssignToLocalVariable last = (AssignToLocalVariable) multiAssignInstruction.getTo(); - final Instruction common = multiAssignInstruction.getCommon(); - final Stack stack = new Stack(); - - while (from != last) { - stack.push(from); - from = (AssignToLocalVariable) ((Instruction) from).getNextExpr(); - } - - for (AssignToLocalVariable alv = stack.pop(); alv != null; alv = stack.size() > 0 ? stack.pop() : null) { - - final LocalVariableInfo localVariableInfo = alv.getLocalVariableInfo(); - if (alv.isDeclaration()) { - write(convertType(localVariableInfo.getVariableDescriptor(), true)); - } - if (localVariableInfo == null) { - throw new CodeGenException("outOfScope" + _instruction.getThisPC() + " = "); - } else { - write(localVariableInfo.getVariableName() + " = "); - } - - } - writeInstruction(common); - } else if (_instruction.getByteCode().equals(ByteCode.INLINE_ASSIGN)) { - final InlineAssignInstruction inlineAssignInstruction = (InlineAssignInstruction) _instruction; - final AssignToLocalVariable assignToLocalVariable = inlineAssignInstruction.getAssignToLocalVariable(); - - final LocalVariableInfo localVariableInfo = assignToLocalVariable.getLocalVariableInfo(); - if (assignToLocalVariable.isDeclaration()) { - // this is bad! we need a general way to hoist up a required declaration - throw new CodeGenException("/* we can't declare this " + convertType(localVariableInfo.getVariableDescriptor(), true) - + " here */"); - } - write(localVariableInfo.getVariableName()); - write("="); - writeInstruction(inlineAssignInstruction.getRhs()); - } else if (_instruction.getByteCode().equals(ByteCode.FIELD_ARRAY_ELEMENT_ASSIGN)) { - final FieldArrayElementAssign inlineAssignInstruction = (FieldArrayElementAssign) _instruction; - final AssignToArrayElement arrayAssignmentInstruction = inlineAssignInstruction.getAssignToArrayElement(); - - writeInstruction(arrayAssignmentInstruction.getArrayRef()); - write("["); - writeInstruction(arrayAssignmentInstruction.getArrayIndex()); - write("]"); - write(" "); - write(" = "); - - writeInstruction(inlineAssignInstruction.getRhs()); - } else if (_instruction.getByteCode().equals(ByteCode.FIELD_ARRAY_ELEMENT_INCREMENT)) { - - final FieldArrayElementIncrement fieldArrayElementIncrement = (FieldArrayElementIncrement) _instruction; - final AssignToArrayElement arrayAssignmentInstruction = fieldArrayElementIncrement.getAssignToArrayElement(); - if (fieldArrayElementIncrement.isPre()) { - if (fieldArrayElementIncrement.isInc()) { - write("++"); - } else { - write("--"); - } - } - writeInstruction(arrayAssignmentInstruction.getArrayRef()); - - write("["); - writeInstruction(arrayAssignmentInstruction.getArrayIndex()); - write("]"); - if (!fieldArrayElementIncrement.isPre()) { - if (fieldArrayElementIncrement.isInc()) { - write("++"); - } else { - write("--"); - } - } - - } else if (_instruction.getByteCode().equals(ByteCode.NONE)) { - // we are done - } else if (_instruction instanceof Branch) { - throw new CodeGenException(String.format("%s -> %04d", _instruction.getByteCode().toString().toLowerCase(), - ((Branch) _instruction).getTarget().getThisPC())); - } else if (_instruction instanceof I_POP) { - //POP discarded void call return? - writeInstruction(_instruction.getFirstChild()); - } else { - throw new CodeGenException(String.format("%s", _instruction.getByteCode().toString().toLowerCase())); - } - - } - - public void writeMethod(MethodCall _methodCall, MethodEntry _methodEntry) throws CodeGenException { - boolean noCL = _methodEntry.getOwnerClassModel().getNoCLMethods().contains(_methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - if (noCL) { - return; - } - - if (_methodCall instanceof VirtualMethodCall) { - final Instruction instanceInstruction = ((VirtualMethodCall) _methodCall).getInstanceReference(); - if (!(instanceInstruction instanceof I_ALOAD_0)) { - writeInstruction(instanceInstruction); - write("."); - } else { - writeThisRef(); - } - } - final int argc = _methodEntry.getStackConsumeCount(); - write(_methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - write("("); - - for (int arg = 0; arg < argc; arg++) { - if (arg != 0) { - write(", "); - } - writeInstruction(_methodCall.getArg(arg)); - } - write(")"); - - } - - public void writeThisRef() { - write("this."); - } - - public void writeMethodBody(MethodModel _methodModel) throws CodeGenException { - if (_methodModel.isGetter() && !_methodModel.isNoCL()) { - FieldEntry accessorVariableFieldEntry = _methodModel.getAccessorVariableFieldEntry(); - writeGetterBlock(accessorVariableFieldEntry); - } - else { - writeBlock(_methodModel.getExprHead(), null); - } - } - - public abstract void write(Entrypoint entryPoint) throws CodeGenException; -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/internal/writer/KernelWriter.java b/com.amd.aparapi/src/java/com/amd/aparapi/internal/writer/KernelWriter.java deleted file mode 100644 index 23d5c158..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/internal/writer/KernelWriter.java +++ /dev/null @@ -1,711 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - - */ -package com.amd.aparapi.internal.writer; - -import com.amd.aparapi.*; -import com.amd.aparapi.Kernel; -import com.amd.aparapi.internal.exception.*; -import com.amd.aparapi.internal.instruction.*; -import com.amd.aparapi.internal.instruction.InstructionSet.*; -import com.amd.aparapi.internal.model.*; -import com.amd.aparapi.internal.model.ClassModel.AttributePool.*; -import com.amd.aparapi.internal.model.ClassModel.AttributePool.RuntimeAnnotationsEntry.*; -import com.amd.aparapi.internal.model.ClassModel.*; -import com.amd.aparapi.internal.model.ClassModel.ConstantPool.*; -import com.amd.aparapi.opencl.OpenCL.Constant; -import com.amd.aparapi.opencl.OpenCL.*; - -import java.util.*; - -public abstract class KernelWriter extends BlockWriter{ - - private final String cvtBooleanToChar = "char "; - - private final String cvtBooleanArrayToCharStar = "char* "; - - private final String cvtByteToChar = "char "; - - private final String cvtByteArrayToCharStar = "char* "; - - private final String cvtCharToShort = "unsigned short "; - - private final String cvtCharArrayToShortStar = "unsigned short* "; - - private final String cvtIntArrayToIntStar = "int* "; - - private final String cvtFloatArrayToFloatStar = "float* "; - - private final String cvtDoubleArrayToDoubleStar = "double* "; - - private final String cvtLongArrayToLongStar = "long* "; - - private final String cvtShortArrayToShortStar = "short* "; - - // private static Logger logger = Logger.getLogger(Config.getLoggerName()); - - private Entrypoint entryPoint = null; - - public final static Map javaToCLIdentifierMap = new HashMap(); - { - javaToCLIdentifierMap.put("getGlobalId()I", "get_global_id(0)"); - javaToCLIdentifierMap.put("getGlobalId(I)I", "get_global_id"); // no parenthesis if we are conveying args - javaToCLIdentifierMap.put("getGlobalX()I", "get_global_id(0)"); - javaToCLIdentifierMap.put("getGlobalY()I", "get_global_id(1)"); - javaToCLIdentifierMap.put("getGlobalZ()I", "get_global_id(2)"); - - javaToCLIdentifierMap.put("getGlobalSize()I", "get_global_size(0)"); - javaToCLIdentifierMap.put("getGlobalSize(I)I", "get_global_size"); // no parenthesis if we are conveying args - javaToCLIdentifierMap.put("getGlobalWidth()I", "get_global_size(0)"); - javaToCLIdentifierMap.put("getGlobalHeight()I", "get_global_size(1)"); - javaToCLIdentifierMap.put("getGlobalDepth()I", "get_global_size(2)"); - - javaToCLIdentifierMap.put("getLocalId()I", "get_local_id(0)"); - javaToCLIdentifierMap.put("getLocalId(I)I", "get_local_id"); // no parenthesis if we are conveying args - javaToCLIdentifierMap.put("getLocalX()I", "get_local_id(0)"); - javaToCLIdentifierMap.put("getLocalY()I", "get_local_id(1)"); - javaToCLIdentifierMap.put("getLocalZ()I", "get_local_id(2)"); - - javaToCLIdentifierMap.put("getLocalSize()I", "get_local_size(0)"); - javaToCLIdentifierMap.put("getLocalSize(I)I", "get_local_size"); // no parenthesis if we are conveying args - javaToCLIdentifierMap.put("getLocalWidth()I", "get_local_size(0)"); - javaToCLIdentifierMap.put("getLocalHeight()I", "get_local_size(1)"); - javaToCLIdentifierMap.put("getLocalDepth()I", "get_local_size(2)"); - - javaToCLIdentifierMap.put("getNumGroups()I", "get_num_groups(0)"); - javaToCLIdentifierMap.put("getNumGroups(I)I", "get_num_groups"); // no parenthesis if we are conveying args - javaToCLIdentifierMap.put("getNumGroupsX()I", "get_num_groups(0)"); - javaToCLIdentifierMap.put("getNumGroupsY()I", "get_num_groups(1)"); - javaToCLIdentifierMap.put("getNumGroupsZ()I", "get_num_groups(2)"); - - javaToCLIdentifierMap.put("getGroupId()I", "get_group_id(0)"); - javaToCLIdentifierMap.put("getGroupId(I)I", "get_group_id"); // no parenthesis if we are conveying args - javaToCLIdentifierMap.put("getGroupX()I", "get_group_id(0)"); - javaToCLIdentifierMap.put("getGroupY()I", "get_group_id(1)"); - javaToCLIdentifierMap.put("getGroupZ()I", "get_group_id(2)"); - - javaToCLIdentifierMap.put("getPassId()I", "get_pass_id(this)"); - - javaToCLIdentifierMap.put("localBarrier()V", "barrier(CLK_LOCAL_MEM_FENCE)"); - - javaToCLIdentifierMap.put("globalBarrier()V", "barrier(CLK_GLOBAL_MEM_FENCE)"); - } - - /** - * These three convert functions are here to perform - * any type conversion that may be required between - * Java and OpenCL. - * - * @param _typeDesc - * String in the Java JNI notation, [I, etc - * @return Suitably converted string, "char*", etc - */ - @Override public String convertType(String _typeDesc, boolean useClassModel) { - if (_typeDesc.equals("Z") || _typeDesc.equals("boolean")) { - return (cvtBooleanToChar); - } else if (_typeDesc.equals("[Z") || _typeDesc.equals("boolean[]")) { - return (cvtBooleanArrayToCharStar); - } else if (_typeDesc.equals("B") || _typeDesc.equals("byte")) { - return (cvtByteToChar); - } else if (_typeDesc.equals("[B") || _typeDesc.equals("byte[]")) { - return (cvtByteArrayToCharStar); - } else if (_typeDesc.equals("C") || _typeDesc.equals("char")) { - return (cvtCharToShort); - } else if (_typeDesc.equals("[C") || _typeDesc.equals("char[]")) { - return (cvtCharArrayToShortStar); - } else if (_typeDesc.equals("[I") || _typeDesc.equals("int[]")) { - return (cvtIntArrayToIntStar); - } else if (_typeDesc.equals("[F") || _typeDesc.equals("float[]")) { - return (cvtFloatArrayToFloatStar); - } else if (_typeDesc.equals("[D") || _typeDesc.equals("double[]")) { - return (cvtDoubleArrayToDoubleStar); - } else if (_typeDesc.equals("[J") || _typeDesc.equals("long[]")) { - return (cvtLongArrayToLongStar); - } else if (_typeDesc.equals("[S") || _typeDesc.equals("short[]")) { - return (cvtShortArrayToShortStar); - } - // if we get this far, we haven't matched anything yet - if (useClassModel) { - return (ClassModel.convert(_typeDesc, "", true)); - } else { - return _typeDesc; - } - } - - @Override public void writeMethod(MethodCall _methodCall, MethodEntry _methodEntry) throws CodeGenException { - final int argc = _methodEntry.getStackConsumeCount(); - - final String methodName = _methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - final String methodSignature = _methodEntry.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - - final String barrierAndGetterMappings = javaToCLIdentifierMap.get(methodName + methodSignature); - - if (barrierAndGetterMappings != null) { - // this is one of the OpenCL barrier or size getter methods - // write the mapping and exit - if (argc > 0) { - write(barrierAndGetterMappings); - write("("); - for (int arg = 0; arg < argc; arg++) { - if ((arg != 0)) { - write(", "); - } - writeInstruction(_methodCall.getArg(arg)); - } - write(")"); - } else { - write(barrierAndGetterMappings); - } - } else { - final boolean isSpecial = _methodCall instanceof I_INVOKESPECIAL; - MethodModel m = entryPoint.getCallTarget(_methodEntry, isSpecial); - - FieldEntry getterField = null; - if (m != null && m.isGetter()) { - getterField = m.getAccessorVariableFieldEntry(); - } - if (getterField != null) { - String fieldName = getterField.getNameAndTypeEntry().getNameUTF8Entry().getUTF8(); - write("this->"); - write(fieldName); - return; - } - boolean noCL = _methodEntry.getOwnerClassModel().getNoCLMethods().contains(_methodEntry.getNameAndTypeEntry().getNameUTF8Entry().getUTF8()); - if (noCL) { - return; - } - final String intrinsicMapping = Kernel.getMappedMethodName(_methodEntry); - // System.out.println("getMappedMethodName for " + methodName + " returned " + mapping); - boolean isIntrinsic = false; - - if (intrinsicMapping == null) { - assert entryPoint != null : "entryPoint should not be null"; - boolean isMapped = Kernel.isMappedMethod(_methodEntry); - - if (m != null) { - write(m.getName()); - } else { - // Must be a library call like rsqrt - assert isMapped : _methodEntry + " should be mapped method!"; - write(methodName); - isIntrinsic = true; - } - } else { - write(intrinsicMapping); - } - - write("("); - - if ((intrinsicMapping == null) && (_methodCall instanceof VirtualMethodCall) && (!isIntrinsic)) { - - final Instruction i = ((VirtualMethodCall) _methodCall).getInstanceReference(); - - if (i instanceof I_ALOAD_0) { - write("this"); - } else if (i instanceof AccessArrayElement) { - final AccessArrayElement arrayAccess = (AccessArrayElement) ((VirtualMethodCall) _methodCall).getInstanceReference(); - final Instruction refAccess = arrayAccess.getArrayRef(); - //assert refAccess instanceof I_GETFIELD : "ref should come from getfield"; - final String fieldName = ((AccessField) refAccess).getConstantPoolFieldEntry().getNameAndTypeEntry() - .getNameUTF8Entry().getUTF8(); - write(" &(this->" + fieldName); - write("["); - writeInstruction(arrayAccess.getArrayIndex()); - write("])"); - } else { - assert false : "unhandled call from: " + i; - } - } - for (int arg = 0; arg < argc; arg++) { - if (((intrinsicMapping == null) && (_methodCall instanceof VirtualMethodCall) && (!isIntrinsic)) || (arg != 0)) { - write(", "); - } - writeInstruction(_methodCall.getArg(arg)); - } - write(")"); - } - } - - public void writePragma(String _name, boolean _enable) { - write("#pragma OPENCL EXTENSION " + _name + " : " + (_enable ? "en" : "dis") + "able"); - newLine(); - } - - public final static String __local = "__local"; - - public final static String __global = "__global"; - - public final static String __constant = "__constant"; - - public final static String __private = "__private"; - - public final static String LOCAL_ANNOTATION_NAME = "L" + Local.class.getName().replace(".", "/") + ";"; - - public final static String CONSTANT_ANNOTATION_NAME = "L" + Constant.class.getName().replace(".", "/") + ";"; - - @Override public void write(Entrypoint _entryPoint) throws CodeGenException { - final List thisStruct = new ArrayList(); - final List argLines = new ArrayList(); - final List assigns = new ArrayList(); - - entryPoint = _entryPoint; - - for (final ClassModelField field : _entryPoint.getReferencedClassModelFields()) { - // Field field = _entryPoint.getClassModel().getField(f.getName()); - final StringBuilder thisStructLine = new StringBuilder(); - final StringBuilder argLine = new StringBuilder(); - final StringBuilder assignLine = new StringBuilder(); - - String signature = field.getDescriptor(); - - boolean isPointer = false; - - int numDimensions = 0; - - // check the suffix - - String type = field.getName().endsWith(Kernel.LOCAL_SUFFIX) ? __local - : (field.getName().endsWith(Kernel.CONSTANT_SUFFIX) ? __constant : __global); - Integer privateMemorySize = null; - try { - privateMemorySize = _entryPoint.getClassModel().getPrivateMemorySize(field.getName()); - } catch (ClassParseException e) { - throw new CodeGenException(e); - } - - if (privateMemorySize != null) { - type = __private; - } - final RuntimeAnnotationsEntry visibleAnnotations = field.getAttributePool().getRuntimeVisibleAnnotationsEntry(); - - if (visibleAnnotations != null) { - for (final AnnotationInfo ai : visibleAnnotations) { - final String typeDescriptor = ai.getTypeDescriptor(); - if (typeDescriptor.equals(LOCAL_ANNOTATION_NAME)) { - type = __local; - } else if (typeDescriptor.equals(CONSTANT_ANNOTATION_NAME)) { - type = __constant; - } - } - } - - String argType = (__private.equals(type)) ? __constant : type; - - //if we have a an array we want to mark the object as a pointer - //if we have a multiple dimensional array we want to remember the number of dimensions - while (signature.startsWith("[")) { - if(isPointer == false) { - argLine.append(argType + " "); - thisStructLine.append(type + " "); - } - isPointer = true; - numDimensions++; - signature = signature.substring(1); - } - - // If it is a converted array of objects, emit the struct param - String className = null; - if (signature.startsWith("L")) { - // Turn Lcom/amd/javalabs/opencl/demo/DummyOOA; into com_amd_javalabs_opencl_demo_DummyOOA for example - className = (signature.substring(1, signature.length() - 1)).replace("/", "_"); - // if (logger.isLoggable(Level.FINE)) { - // logger.fine("Examining object parameter: " + signature + " new: " + className); - // } - argLine.append(className); - thisStructLine.append(className); - } else { - argLine.append(convertType(ClassModel.typeName(signature.charAt(0)), false)); - thisStructLine.append(convertType(ClassModel.typeName(signature.charAt(0)), false)); - } - - argLine.append(" "); - thisStructLine.append(" "); - - if (isPointer) { - argLine.append("*"); - if (privateMemorySize == null) { - thisStructLine.append("*"); - } - } - - if (privateMemorySize == null) { - assignLine.append("this->"); - assignLine.append(field.getName()); - assignLine.append(" = "); - assignLine.append(field.getName()); - } - - argLine.append(field.getName()); - thisStructLine.append(field.getName()); - if (privateMemorySize == null) { - assigns.add(assignLine.toString()); - } - argLines.add(argLine.toString()); - if (privateMemorySize != null) { - thisStructLine.append("[").append(privateMemorySize).append("]"); - } - thisStruct.add(thisStructLine.toString()); - - // Add int field into "this" struct for supporting java arraylength op - // named like foo__javaArrayLength - if (isPointer && _entryPoint.getArrayFieldArrayLengthUsed().contains(field.getName()) || - isPointer && numDimensions > 1) { - - for(int i = 0; i < numDimensions; i++) { - final StringBuilder lenStructLine = new StringBuilder(); - final StringBuilder lenArgLine = new StringBuilder(); - final StringBuilder lenAssignLine = new StringBuilder(); - final StringBuilder dimStructLine = new StringBuilder(); - final StringBuilder dimArgLine = new StringBuilder(); - final StringBuilder dimAssignLine = new StringBuilder(); - - String lenName = field.getName() + BlockWriter.arrayLengthMangleSuffix + - Integer.toString(i); - - lenStructLine.append("int " + lenName); - - lenAssignLine.append("this->"); - lenAssignLine.append(lenName); - lenAssignLine.append(" = "); - lenAssignLine.append(lenName); - - lenArgLine.append("int " + lenName); - - assigns.add(lenAssignLine.toString()); - argLines.add(lenArgLine.toString()); - thisStruct.add(lenStructLine.toString()); - - String dimName = field.getName() + BlockWriter.arrayDimMangleSuffix + - Integer.toString(i); - - dimStructLine.append("int " + dimName); - - dimAssignLine.append("this->"); - dimAssignLine.append(dimName); - dimAssignLine.append(" = "); - dimAssignLine.append(dimName); - - dimArgLine.append("int " + dimName); - - assigns.add(dimAssignLine.toString()); - argLines.add(dimArgLine.toString()); - thisStruct.add(dimStructLine.toString()); - } - } - } - - if (Config.enableByteWrites || _entryPoint.requiresByteAddressableStorePragma()) { - // Starting with OpenCL 1.1 (which is as far back as we support) - // this feature is part of the core, so we no longer need this pragma - if (false) { - writePragma("cl_khr_byte_addressable_store", true); - newLine(); - } - } - - boolean usesAtomics = false; - if (Config.enableAtomic32 || _entryPoint.requiresAtomic32Pragma()) { - usesAtomics = true; - writePragma("cl_khr_global_int32_base_atomics", true); - writePragma("cl_khr_global_int32_extended_atomics", true); - writePragma("cl_khr_local_int32_base_atomics", true); - writePragma("cl_khr_local_int32_extended_atomics", true); - } - - if (Config.enableAtomic64 || _entryPoint.requiresAtomic64Pragma()) { - usesAtomics = true; - writePragma("cl_khr_int64_base_atomics", true); - writePragma("cl_khr_int64_extended_atomics", true); - } - - if (usesAtomics) { - write("int atomicAdd(__global int *_arr, int _index, int _delta){"); - in(); - { - newLine(); - write("return atomic_add(&_arr[_index], _delta);"); - out(); - newLine(); - } - write("}"); - - newLine(); - } - - if (Config.enableDoubles || _entryPoint.requiresDoublePragma()) { - writePragma("cl_khr_fp64", true); - newLine(); - } - - // Emit structs for oop transformation accessors - for (final ClassModel cm : _entryPoint.getObjectArrayFieldsClasses().values()) { - final ArrayList fieldSet = cm.getStructMembers(); - if (fieldSet.size() > 0) { - final String mangledClassName = cm.getClassWeAreModelling().getName().replace(".", "_"); - newLine(); - write("typedef struct " + mangledClassName + "_s{"); - in(); - newLine(); - - int totalSize = 0; - int alignTo = 0; - - final Iterator it = fieldSet.iterator(); - while (it.hasNext()) { - final FieldEntry field = it.next(); - final String fType = field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - final int fSize = InstructionSet.TypeSpec.valueOf(fType.equals("Z") ? "B" : fType).getSize(); - - if (fSize > alignTo) { - alignTo = fSize; - } - totalSize += fSize; - - final String cType = convertType(field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(), true); - assert cType != null : "could not find type for " + field.getNameAndTypeEntry().getDescriptorUTF8Entry().getUTF8(); - writeln(cType + " " + field.getNameAndTypeEntry().getNameUTF8Entry().getUTF8() + ";"); - } - - // compute total size for OpenCL buffer - int totalStructSize = 0; - if ((totalSize % alignTo) == 0) { - totalStructSize = totalSize; - } else { - // Pad up if necessary - totalStructSize = ((totalSize / alignTo) + 1) * alignTo; - } - if (totalStructSize > alignTo) { - while (totalSize < totalStructSize) { - // structBuffer.put((byte)-1); - writeln("char _pad_" + totalSize + ";"); - totalSize++; - } - } - - out(); - newLine(); - write("} " + mangledClassName + ";"); - newLine(); - } - } - - write("typedef struct This_s{"); - - in(); - newLine(); - for (final String line : thisStruct) { - write(line); - writeln(";"); - } - write("int passid"); - out(); - writeln(";"); - // out(); - // newLine(); - write("}This;"); - newLine(); - write("int get_pass_id(This *this){"); - in(); - { - newLine(); - write("return this->passid;"); - out(); - newLine(); - } - write("}"); - newLine(); - - for (final MethodModel mm : _entryPoint.getCalledMethods()) { - // write declaration :) - if (mm.isPrivateMemoryGetter()) { - continue; - } - - final String returnType = mm.getReturnType(); - // Arrays always map to __private or__global arrays - if (returnType.startsWith("[")) { - write(" __global "); - } - write(convertType(returnType, true)); - - write(mm.getName() + "("); - - if (!mm.getMethod().isStatic()) { - if ((mm.getMethod().getClassModel() == _entryPoint.getClassModel()) - || mm.getMethod().getClassModel().isSuperClass(_entryPoint.getClassModel().getClassWeAreModelling())) { - write("This *this"); - } else { - // Call to an object member or superclass of member - for (final ClassModel c : _entryPoint.getObjectArrayFieldsClasses().values()) { - if (mm.getMethod().getClassModel() == c) { - write("__global " + mm.getMethod().getClassModel().getClassWeAreModelling().getName().replace(".", "_") - + " *this"); - break; - } else if (mm.getMethod().getClassModel().isSuperClass(c.getClassWeAreModelling())) { - write("__global " + c.getClassWeAreModelling().getName().replace(".", "_") + " *this"); - break; - } - } - } - } - - boolean alreadyHasFirstArg = !mm.getMethod().isStatic(); - - final LocalVariableTableEntry lvte = mm.getLocalVariableTableEntry(); - for (final LocalVariableInfo lvi : lvte) { - if ((lvi.getStart() == 0) && ((lvi.getVariableIndex() != 0) || mm.getMethod().isStatic())) { // full scope but skip this - final String descriptor = lvi.getVariableDescriptor(); - if (alreadyHasFirstArg) { - write(", "); - } - - // Arrays always map to __global arrays - if (descriptor.startsWith("[")) { - write(" __global "); - } - - write(convertType(descriptor, true)); - write(lvi.getVariableName()); - alreadyHasFirstArg = true; - } - } - write(")"); - writeMethodBody(mm); - newLine(); - } - - write("__kernel void " + _entryPoint.getMethodModel().getSimpleName() + "("); - - in(); - boolean first = true; - for (final String line : argLines) { - - if (first) { - first = false; - } else { - write(", "); - } - - newLine(); - write(line); - } - - if (first) { - first = false; - } else { - write(", "); - } - newLine(); - write("int passid"); - out(); - newLine(); - write("){"); - in(); - newLine(); - writeln("This thisStruct;"); - writeln("This* this=&thisStruct;"); - for (final String line : assigns) { - write(line); - writeln(";"); - } - write("this->passid = passid"); - writeln(";"); - - writeMethodBody(_entryPoint.getMethodModel()); - out(); - newLine(); - writeln("}"); - out(); - } - - @Override public void writeThisRef() { - write("this->"); - } - - @Override public void writeInstruction(Instruction _instruction) throws CodeGenException { - if ((_instruction instanceof I_IUSHR) || (_instruction instanceof I_LUSHR)) { - final BinaryOperator binaryInstruction = (BinaryOperator) _instruction; - final Instruction parent = binaryInstruction.getParentExpr(); - boolean needsParenthesis = true; - - if (parent instanceof AssignToLocalVariable) { - needsParenthesis = false; - } else if (parent instanceof AssignToField) { - needsParenthesis = false; - } else if (parent instanceof AssignToArrayElement) { - needsParenthesis = false; - } - if (needsParenthesis) { - write("("); - } - - if (binaryInstruction instanceof I_IUSHR) { - write("((unsigned int)"); - } else { - write("((unsigned long)"); - } - writeInstruction(binaryInstruction.getLhs()); - write(")"); - write(" >> "); - writeInstruction(binaryInstruction.getRhs()); - - if (needsParenthesis) { - write(")"); - } - } else { - super.writeInstruction(_instruction); - } - } - - public static String writeToString(Entrypoint _entrypoint) throws CodeGenException { - final StringBuilder openCLStringBuilder = new StringBuilder(); - final KernelWriter openCLWriter = new KernelWriter(){ - @Override public void write(String _string) { - openCLStringBuilder.append(_string); - } - }; - try { - openCLWriter.write(_entrypoint); - } catch (final CodeGenException codeGenException) { - throw codeGenException; - }/* catch (final Throwable t) { - throw new CodeGenException(t); - }*/ - - return (openCLStringBuilder.toString()); - } -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/opencl/OpenCL.java b/com.amd.aparapi/src/java/com/amd/aparapi/opencl/OpenCL.java deleted file mode 100644 index 8fd113c9..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/opencl/OpenCL.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.amd.aparapi.opencl; - -import com.amd.aparapi.ProfileInfo; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.util.List; - -public interface OpenCL { - - public static final String CL_KHR_FP64 = "cl_khr_fp64"; - - public static final String CL_KHR_SELECT_FPROUNDING_MODE = "cl_khr_select_fprounding_mode"; - - public static final String CL_KHR_GLOBAL_INT32_BASE_ATOMICS = "cl_khr_global_int32_base_atomics"; - - public static final String CL_KHR_GLOBAL_INT32_EXTENDED_ATOMICS = "cl_khr_global_int32_extended_atomics"; - - public static final String CL_KHR_LOCAL_INT32_BASE_ATOMICS = "cl_khr_local_int32_base_atomics"; - - public static final String CL_KHR_LOCAL_INT32_EXTENDED_ATOMICS = "cl_khr_local_int32_extended_atomics"; - - public static final String CL_KHR_INT64_BASE_ATOMICS = "cl_khr_int64_base_atomics"; - - public static final String CL_KHR_INT64_EXTENDED_ATOMICS = "cl_khr_int64_extended_atomics"; - - public static final String CL_KHR_3D_IMAGE_WRITES = "cl_khr_3d_image_writes"; - - public static final String CL_KHR_BYTE_ADDRESSABLE_SUPPORT = "cl_khr_byte_addressable_store"; - - public static final String CL_KHR_FP16 = "cl_khr_fp16"; - - public static final String CL_KHR_GL_SHARING = "cl_khr_gl_sharing"; - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Put { - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Get { - } - - @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Source { - String value(); - } - - @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface Resource { - String value(); - } - - @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Kernel { - String value(); - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Arg { - String value(); - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface GlobalReadWrite { - String value(); - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface GlobalReadOnly { - String value(); - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface GlobalWriteOnly { - String value(); - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Local { - String value(); - } - - @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface Constant { - String value(); - } - - public T put(float[] array); - - public T put(int[] array); - - public T put(short[] array); - - public T put(byte[] array); - - public T put(char[] array); - - public T put(boolean[] array); - - public T put(double[] array); - - public T get(float[] array); - - public T get(int[] array); - - public T get(short[] array); - - public T get(char[] array); - - public T get(boolean[] array); - - public T get(double[] array); - - public T get(byte[] array); - - public T begin(); - - public T end(); - - public T dispose(); - - public List getProfileInfo(); -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/opencl/OpenCLAdapter.java b/com.amd.aparapi/src/java/com/amd/aparapi/opencl/OpenCLAdapter.java deleted file mode 100644 index 7568fc2e..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/opencl/OpenCLAdapter.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.amd.aparapi.opencl; - -import com.amd.aparapi.ProfileInfo; -import java.util.ArrayList; -import java.util.List; - -public class OpenCLAdapter implements OpenCL{ - - @SuppressWarnings("unchecked") public T put(byte[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(byte[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T put(float[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T put(int[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T put(short[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T put(char[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T put(boolean[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T put(double[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(float[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(int[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(short[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(char[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(boolean[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T get(double[] array) { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T begin() { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T end() { - return ((T) this); - } - - @SuppressWarnings("unchecked") public T dispose() { - return ((T) this); - } - - public List getProfileInfo(){ - return(new ArrayList()); - } - -} diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/opencl/package-info.java b/com.amd.aparapi/src/java/com/amd/aparapi/opencl/package-info.java deleted file mode 100644 index 3b17ab7d..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/opencl/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * - */ -package com.amd.aparapi.opencl; \ No newline at end of file diff --git a/com.amd.aparapi/src/java/com/amd/aparapi/package-info.java b/com.amd.aparapi/src/java/com/amd/aparapi/package-info.java deleted file mode 100644 index 2b6ece46..00000000 --- a/com.amd.aparapi/src/java/com/amd/aparapi/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * - */ -package com.amd.aparapi; \ No newline at end of file diff --git a/examples/correlation-matrix/.classpath b/examples/correlation-matrix/.classpath deleted file mode 100644 index 25515efc..00000000 --- a/examples/correlation-matrix/.classpath +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/examples/correlation-matrix/.project b/examples/correlation-matrix/.project deleted file mode 100644 index 89d60ffc..00000000 --- a/examples/correlation-matrix/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - correlation-matrix - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/correlation-matrix/CC-4257_FINAL_060612.pdf b/examples/correlation-matrix/CC-4257_FINAL_060612.pdf deleted file mode 100644 index 4a3aa75c..00000000 Binary files a/examples/correlation-matrix/CC-4257_FINAL_060612.pdf and /dev/null differ diff --git a/examples/correlation-matrix/build.xml b/examples/correlation-matrix/build.xml deleted file mode 100644 index 17198982..00000000 --- a/examples/correlation-matrix/build.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - OS Name: ${os.name} - OS Version: ${os.version} - OS Arch: ${os.arch} - Java Version: ${java.version} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/correlation-matrix/src/java/gov/pnnl/aparapi/matrix/CorrMatrixHost.java b/examples/correlation-matrix/src/java/gov/pnnl/aparapi/matrix/CorrMatrixHost.java deleted file mode 100644 index 89e3cc30..00000000 --- a/examples/correlation-matrix/src/java/gov/pnnl/aparapi/matrix/CorrMatrixHost.java +++ /dev/null @@ -1,364 +0,0 @@ -/** - * This material was prepared as an account of work sponsored by an agency of the United States Government. - * Neither the United States Government nor the United States Department of Energy, nor Battelle, nor any of - * their employees, nor any jurisdiction or organization that has cooperated in the development of these materials, - * makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness or any information, apparatus, product, software, or process disclosed, or represents - * that its use would not infringe privately owned rights. - */ -package gov.pnnl.aparapi.matrix; - -import org.apache.log4j.Logger; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Kernel.EXECUTION_MODE; -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; - -/** - * GPU calculations using OpenBitSet Intersection for OpenBitSets - * - * Based on code from:
      - * {@link http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java} - * - * @author ryan.lamothe at gmail.com - * @author sedillard at gmail.com - */ -public class CorrMatrixHost { - - private static final Logger LOG = Logger.getLogger(CorrMatrixHost.class); - - /** - * Perform matrix intersection for two lists of Lucene OpenBitSet-based packed longs - * - * @param matrixA - * The first term-document matrix - * @param matrixB - * The second term-document matrix - * @param Aparapi EXECUTION_MODE - * @return result Matrix - * @throws Exception - */ - public static int[][] intersectionMatrix(final long[][] matrixA, final long[][] matrixB, final EXECUTION_MODE executionMode) throws Exception { - - // Basic validation - if (matrixA == null) { - throw new NullPointerException("MatrixA cannot be NULL"); - } - - if (matrixB == null) { - throw new NullPointerException("MatrixB cannot be NULL"); - } - - // Size of an array is 8 bytes for the object + 4 bytes for the header and length information - final int arrayMemOverhead = 12; - - // numDocs/64 since they are packed into longs - // We need to make our matrix sizes multiples of BLOCK_SIZE - final int matrixA_numTerms = matrixA.length; - final int matrixA_numLongs = matrixA[0].length; - - if (LOG.isDebugEnabled()) { - LOG.debug("----------"); - LOG.debug("MatrixA NumTerms (Rows): " + matrixA_numTerms); - LOG.debug("MatrixA NumLongs (Columns): " + matrixA_numLongs); - LOG.debug("MatrixA NumDocs: " + (matrixA_numLongs * 64L)); - } - - final long matrixA_BytesPerRow = matrixA_numLongs * 8L; - final long matrixA_TotalBytes = (matrixA_numTerms * matrixA_BytesPerRow) + arrayMemOverhead; - - if (LOG.isDebugEnabled()) { - LOG.debug("MatrixA Total Memory Size: " + humanReadableByteCount(matrixA_TotalBytes, true)); - } - - final int matrixB_numTerms = matrixB.length; - final int matrixB_numLongs = matrixB[0].length; - - if (LOG.isDebugEnabled()) { - LOG.debug("----------"); - LOG.debug("MatrixB NumTerms (Rows): " + matrixB_numTerms); - LOG.debug("MatrixB NumLongs (Columns): " + matrixB_numLongs); - LOG.debug("MatrixB NumDocs: " + (matrixB_numLongs * 64L)); - } - - final long matrixB_BytesPerRow = matrixB_numLongs * 8L; - final long matrixB_TotalBytes = (matrixB_numTerms * matrixB_BytesPerRow) + arrayMemOverhead; - - if (LOG.isDebugEnabled()) { - LOG.debug("MatrixB Total Memory Size: " + humanReadableByteCount(matrixB_TotalBytes, true)); - LOG.debug("----------"); - } - - final int[][] resultMatrix = new int[matrixA_numTerms][matrixB_numTerms]; - - if (LOG.isDebugEnabled()) { - final long resultMatrix_TotalBytes = (matrixA_numTerms * matrixB_numTerms * 4L) + arrayMemOverhead; - LOG.debug("ResultMatrix Memory Size: " + humanReadableByteCount(resultMatrix_TotalBytes, true)); - LOG.debug("Total Requested Memory Size: " + humanReadableByteCount(matrixA_TotalBytes + matrixB_TotalBytes + resultMatrix_TotalBytes, true)); - LOG.debug("----------"); - } - - int NUM_SUB_ROWS = matrixA_numTerms; // Default number of sub-rows - - OpenCLDevice device = null; - - // We do not test for EXECUTION_MODE.JTP because JTP is non-OpenCL - if (executionMode.equals(EXECUTION_MODE.CPU)) { - device = (OpenCLDevice) Device.firstCPU(); - - if (device == null) { - LOG.warn("OpenCLDevice.CPU is NULL...OpenCL is unavailable. Setting to JTP mode."); - LOG.debug("----------"); - } - } else if (executionMode.equals(EXECUTION_MODE.GPU)) { - device = (OpenCLDevice) Device.best(); - - if (device == null) { - LOG.warn("OpenCLDevice.GPU is NULL...OpenCL is unavailable. Setting to JTP mode."); - LOG.debug("----------"); - } - } - - // This is to create stripes of rows that will fit into OpenCL's available memory - // Calculate the number of sub-rows by calling OpenCL to find out available memory - // Length of row * 8 (size of long in bytes) * number of rows to available memory - final int maxNumTerms = Math.max(matrixA_numTerms, matrixB_numTerms); - - if (device != null) { - final long globalMemSize = device.getGlobalMemSize(); - // final long maxMemAllocSize = Math.max((globalMemSize/4), 128*1024*1024); - final long maxMemAllocSize = device.getMaxMemAllocSize(); - - // 1048576 bytes in a megabyte (1024*1024) - // Java long is 8 bytes - // 131072 longs in 1 megabyte - // SAFE OpenCL spec allocation is max(1/4 GlobalMemSize) - // ***During our testing this appears to be incorrectly/inconsistently reported depending on os/drivers/hardware*** - if (LOG.isDebugEnabled()) { - LOG.debug("Available OpenCL globalMemSize: " + humanReadableByteCount(globalMemSize, true)); - LOG.debug("Available OpenCL maxMemAllocSize: " + humanReadableByteCount(maxMemAllocSize, true)); - } - - // Maybe there is a more clever way to do this :) - // The idea here is to decide how many sub-rows of the matrix we can fit on a single card - // The long-term goal to divide up the work for both small RAM GPUs and multiple GPUs - int subRowsCounterA = 0; - int subRowsCounterB = 0; - long subRowsMemSizeA = 0L; - long subRowsMemSizeB = 0L; - long subResultMatrixMemSize = 0L; - long subTotalMemSize = 0L; - - do { - if (subRowsCounterA < matrixA_numTerms) { - subRowsMemSizeA = subRowsCounterA != 0 ? (subRowsCounterA * matrixA_numLongs * 8L) + arrayMemOverhead : 0; - subRowsCounterA += 1; - } else if (subRowsCounterA == matrixA_numTerms) { - subRowsMemSizeA = subRowsCounterA != 0 ? (subRowsCounterA * matrixA_numLongs * 8L) + arrayMemOverhead : 0; - } - - if (subRowsCounterB < matrixB_numTerms) { - subRowsMemSizeB = subRowsCounterB != 0 ? (subRowsCounterB * matrixB_numLongs * 8L) + arrayMemOverhead : 0; - subRowsCounterB += 1; - } else if (subRowsCounterB == matrixB_numTerms) { - subRowsMemSizeB = subRowsCounterB != 0 ? (subRowsCounterB * matrixB_numLongs * 8L) + arrayMemOverhead : 0; - } - - // This is 4 bytes since the sub-result matrix is an int array - subResultMatrixMemSize = ((subRowsCounterA * subRowsCounterB) * 4L) + arrayMemOverhead; - - subTotalMemSize = subRowsMemSizeA + subRowsMemSizeB + subResultMatrixMemSize; - } while ((Math.max(subRowsCounterA, subRowsCounterB) < maxNumTerms) && (subTotalMemSize <= maxMemAllocSize)); - - // If using OpenCL override the default number of subrows - NUM_SUB_ROWS = Math.max(subRowsCounterA, subRowsCounterB); - - if (NUM_SUB_ROWS < maxNumTerms) { - final long subMatrixA_memSize = (NUM_SUB_ROWS * matrixA_numLongs * 8L) + arrayMemOverhead; - final long subMatrixB_memSize = (NUM_SUB_ROWS * matrixB_numLongs * 8L) + arrayMemOverhead; - final long subResultMatrix_memSize = (NUM_SUB_ROWS * NUM_SUB_ROWS * 4L) + arrayMemOverhead; - - LOG.warn("****************************************************************"); - LOG.warn("Requested matrix computation is larger than available OpenCL memory"); - LOG.warn("Matrix striping is occurring to fit all data into OpenCL memory..."); - LOG.warn(""); - LOG.warn("Number rows requested: " + maxNumTerms); - LOG.warn("Number rows that fit: " + NUM_SUB_ROWS); - LOG.warn(""); - LOG.warn("SubMatrixA Memory Size: " + humanReadableByteCount(subMatrixA_memSize, true)); - LOG.warn("SubMatrixB Memory Size: " + humanReadableByteCount(subMatrixB_memSize, true)); - LOG.warn("SubResultMatrix Memory Size: " + humanReadableByteCount(subResultMatrix_memSize, true)); - LOG.warn("SubMatrix Total Memory Size: " + humanReadableByteCount(subMatrixA_memSize + subMatrixB_memSize + subResultMatrix_memSize, true)); - LOG.warn("****************************************************************"); - } - } - - final int numSubBlocksA = ((matrixA_numTerms + NUM_SUB_ROWS) - 1) / NUM_SUB_ROWS; - final int numSubBlocksB = ((matrixB_numTerms + NUM_SUB_ROWS) - 1) / NUM_SUB_ROWS; - - final long[] subMatrixA = new long[NUM_SUB_ROWS * matrixA_numLongs]; - final long[] subMatrixB = new long[NUM_SUB_ROWS * matrixB_numLongs]; - final int[] subResultMatrix = new int[NUM_SUB_ROWS * NUM_SUB_ROWS]; - - final CorrMatrixKernel kernel = new CorrMatrixKernel(subMatrixA, NUM_SUB_ROWS, subMatrixB, NUM_SUB_ROWS, matrixA_numLongs, subResultMatrix); - kernel.setExplicit(true); - - // Here we define a fall-back strategy, since the user may have wanted to execute only a single execution mode - if (executionMode.equals(EXECUTION_MODE.GPU) && (device != null)) { - kernel.addExecutionModes(EXECUTION_MODE.GPU, EXECUTION_MODE.CPU, EXECUTION_MODE.JTP); - LOG.debug("Execution Fallback Strategy: GPU --> CPU --> JTP"); - } else if (executionMode.equals(EXECUTION_MODE.CPU) && (device != null)) { - kernel.addExecutionModes(EXECUTION_MODE.CPU, EXECUTION_MODE.JTP); - LOG.debug("Execution Fallback Strategy: CPU --> JTP"); - } else { - kernel.addExecutionModes(EXECUTION_MODE.JTP); - LOG.debug("Execution Strategy: JTP"); - } - - try { - for (int a = 0; a < numSubBlocksA; a++) { - for (int b = 0; b < numSubBlocksB; b++) { - final int aSubRowStart = a * NUM_SUB_ROWS; - final int aSubRowEnd = Math.min(matrixA_numTerms, aSubRowStart + NUM_SUB_ROWS); - - for (int i = aSubRowStart; i < aSubRowEnd; i++) { - if (matrixA_numLongs != matrixA[i].length) { - throw new Exception("All rows in the matrix need be the same length"); - } - - System.arraycopy(matrixA[i], 0, subMatrixA, (i - aSubRowStart) * matrixA_numLongs, matrixA_numLongs); - } - - final int bSubRowStart = b * NUM_SUB_ROWS; - final int bSubRowEnd = Math.min(matrixB_numTerms, bSubRowStart + NUM_SUB_ROWS); - - for (int i = bSubRowStart; i < bSubRowEnd; i++) { - if (matrixA_numLongs != matrixB[i].length) { - throw new Exception("All rows in the matrix need be the same length"); - } - - System.arraycopy(matrixB[i], 0, subMatrixB, (i - bSubRowStart) * matrixB_numLongs, matrixB_numLongs); - } - - // Since matrixA_NumLongs == matrixB_NumLongs we're only going to pass matrixA_NumLongs - executeKernel(device, subMatrixA, aSubRowEnd - aSubRowStart, subMatrixB, bSubRowEnd - bSubRowStart, matrixA_numLongs, subResultMatrix, kernel); - - // Convert one dimensional array to two dimensional array in the expected output ordering - for (int i = 0; i < NUM_SUB_ROWS; i++) { - if ((i + aSubRowStart) < aSubRowEnd) { - System.arraycopy(subResultMatrix, i * NUM_SUB_ROWS, resultMatrix[i + aSubRowStart], bSubRowStart, bSubRowEnd - bSubRowStart); - } - } - } - } - } finally { - if (LOG.isDebugEnabled()) { - LOG.debug("----------"); - LOG.debug("Aparapi Gross Execution Time: " + kernel.getAccumulatedExecutionTime() + " ms <------ Aparapi"); - LOG.debug("OpenCL Generation Time: " + kernel.getConversionTime() + " ms"); - LOG.debug("Kernel Net Execution Time: " + (kernel.getAccumulatedExecutionTime() - kernel.getConversionTime()) + " ms"); - LOG.debug("----------"); - } - - try { - kernel.dispose(); - } catch (final UnsatisfiedLinkError e) { - LOG.error("Aparapi failed to dispose of the kernel", e); - } - } - - return resultMatrix; - } - - /** - * Execute the GPU kernel - * - * @param subMatrixA - * @param matrixA_NumTerms - * @param subMatrixB - * @param matrixB_NumTerms - * @param numLongs - * @param subResultMatrix - * @param kernel - * - * @return resultMatrix - */ - private static void executeKernel(final Device device, final long[] subMatrixA, final int matrixA_NumTerms, final long[] subMatrixB, final int matrixB_NumTerms, final int numLongs, final int[] subResultMatrix, final Kernel kernel) { - - // Power of Two for best performance - int matrixA_NumTermsRnd = matrixA_NumTerms; - while (!isPowerOfTwo(matrixA_NumTermsRnd)) { - matrixA_NumTermsRnd += 1; - } - - int matrixB_NumTermsRnd = matrixB_NumTerms; - while (!isPowerOfTwo(matrixB_NumTermsRnd)) { - matrixB_NumTermsRnd += 1; - } - - final Range range; - if (device != null) { - range = Range.create2D(device, matrixA_NumTermsRnd, matrixB_NumTermsRnd); - } else { - range = Range.create2D(matrixA_NumTermsRnd, matrixB_NumTermsRnd); - } - - if (LOG.isDebugEnabled()) { - LOG.debug("Range: " + range); - } - - kernel.put(subMatrixA); - kernel.put(subMatrixB); - kernel.put(subResultMatrix); - - kernel.execute(range); - - kernel.get(subResultMatrix); - } - - /** - * Highly efficient means to compute whether a number is a power of 2
      - * Based on code from http://graphics.stanford.edu/~seander/bithacks.html#DetermineIfPowerOf2 - *

      - * Another very cool way to do this is ((x&(-x))==x) - * - * @param n - * @return boolean - */ - private static boolean isPowerOfTwo(int n) { - return (n > 0) && ((n & (n - 1)) == 0); - } - - /** - * Rounds a number to the multiple indicated - * - * @param num - * @param multiple - * @return - */ - private static int roundToMultiple(double num, int multiple) { - return (int) (Math.ceil(num / multiple) * multiple); - } - - /** - * Very nice means to convert byte sizes into human readable format
      - * Based on code from http://stackoverflow.com/questions/3758606/how-to-convert-byte-size-into-human-readable-format-in-java - *

      - * - * @param bytes - * @param si - * @return humanReadableByteCount - */ - private static String humanReadableByteCount(long bytes, boolean si) { - final int unit = si ? 1000 : 1024; - if (bytes < unit) { - return bytes + " B"; - } - final int exp = (int) (Math.log(bytes) / Math.log(unit)); - final String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i"); - - return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre); - } -} diff --git a/examples/correlation-matrix/src/java/gov/pnnl/aparapi/matrix/CorrMatrixKernel.java b/examples/correlation-matrix/src/java/gov/pnnl/aparapi/matrix/CorrMatrixKernel.java deleted file mode 100644 index 2b95ed01..00000000 --- a/examples/correlation-matrix/src/java/gov/pnnl/aparapi/matrix/CorrMatrixKernel.java +++ /dev/null @@ -1,261 +0,0 @@ -/** - * This material was prepared as an account of work sponsored by an agency of the United States Government. - * Neither the United States Government nor the United States Department of Energy, nor Battelle, nor any of - * their employees, nor any jurisdiction or organization that has cooperated in the development of these materials, - * makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness or any information, apparatus, product, software, or process disclosed, or represents - * that its use would not infringe privately owned rights. - */ -package gov.pnnl.aparapi.matrix; - -import com.amd.aparapi.Kernel; - -/** - * This kernel attempts to re-implement the Lucene OpenBitSet functionality on a GPU - * - * Based on code from:
      - * {@link http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java} - * - * @author ryan.lamothe at gmail.com - * @author sedillard at gmail.com - */ -public class CorrMatrixKernel extends Kernel { - - final long[] matrixA; - - final int matrixA_NumTerms; - - final long[] matrixB; - - final int matrixB_NumTerms; - - int numLongs; - - int[] resultMatrix; - - /** - * Default constructor - */ - public CorrMatrixKernel(final long[] matrixA, final int matrixA_NumTerms, final long[] matrixB, final int matrixB_NumTerms, - final int numLongs, final int[] resultMatrix) { - this.matrixA = matrixA; - this.matrixA_NumTerms = matrixA_NumTerms; - this.matrixB = matrixB; - this.matrixB_NumTerms = matrixB_NumTerms; - this.numLongs = numLongs; - this.resultMatrix = resultMatrix; - } - - @Override - public void run() { - final int i = this.getGlobalId(0); - - if (i < matrixA_NumTerms) { - final int j = this.getGlobalId(1); - - if (j < matrixB_NumTerms) { - // For testing purposes, you can use the naive implementation to compare performance - resultMatrix[(i * matrixB_NumTerms) + j] = pop_intersect(matrixA, i * numLongs, matrixB, j * numLongs, numLongs); - // this.resultMatrix[i * matrixB_NumTerms + j] = this.naive_pop_intersect(matrixA, i * numLongs, matrixB, j * numLongs, numLongs); - } - } - } - - /** - * A naive implementation of the pop_array code below - */ - private int naive_pop_intersect(final long matrixA[], final int aStart, final long matrixB[], final int bStart, final int numWords) { - int sum = 0; - - for (int i = 0; i < numWords; i++) { - sum += pop(matrixA[aStart + i] & matrixB[bStart + i]); - } - - return sum; - } - - /** - * Returns the popcount or cardinality of the two sets after an intersection. - * Neither array is modified. - * - * Modified for the purposes of this kernel from its original version - */ - private int pop_intersect(final long matrixA[], final int aStart, final long matrixB[], final int bStart, final int numWords) { - - /* - * http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java - */ - - // generated from pop_array via sed 's/A\[\([^]]*\)\]/\(A[\1] \& B[\1]\)/g' - final int n = numWords; - int tot = 0, tot8 = 0; - long ones = 0, twos = 0, fours = 0; - - int i; - for (i = 0; i <= (n - 8); i += 8) { - long twosA = 0; - long twosB = 0; - long foursA = 0; - long foursB = 0; - long eights = 0; - - final int ai = aStart + i; - final int bi = bStart + i; - - // CSA(twosA, ones, ones, (A[i] & B[i]), (A[i+1] & B[i+1])) - { - final long b = matrixA[ai] & matrixB[bi], c = matrixA[ai + 1] & matrixB[bi + 1]; - final long u = ones ^ b; - twosA = (ones & b) | (u & c); - ones = u ^ c; - } - - // CSA(twosB, ones, ones, (A[i+2] & B[i+2]), (A[i+3] & B[i+3])) - { - final long b = matrixA[ai + 2] & matrixB[bi + 2], c = matrixA[ai + 3] & matrixB[bi + 3]; - final long u = ones ^ b; - twosB = (ones & b) | (u & c); - ones = u ^ c; - } - - // CSA(foursA, twos, twos, twosA, twosB) - { - final long u = twos ^ twosA; - foursA = (twos & twosA) | (u & twosB); - twos = u ^ twosB; - } - - // CSA(twosA, ones, ones, (A[i+4] & B[i+4]), (A[i+5] & B[i+5])) - { - final long b = matrixA[ai + 4] & matrixB[bi + 4], c = matrixA[ai + 5] & matrixB[bi + 5]; - final long u = ones ^ b; - twosA = (ones & b) | (u & c); - ones = u ^ c; - } - - // CSA(twosB, ones, ones, (A[i+6] & B[i+6]), (A[i+7] & B[i+7])) - { - final long b = matrixA[ai + 6] & matrixB[bi + 6], c = matrixA[ai + 7] & matrixB[bi + 7]; - final long u = ones ^ b; - twosB = (ones & b) | (u & c); - ones = u ^ c; - } - - // CSA(foursB, twos, twos, twosA, twosB) - { - final long u = twos ^ twosA; - foursB = (twos & twosA) | (u & twosB); - twos = u ^ twosB; - } - - // CSA(eights, fours, fours, foursA, foursB) - { - final long u = fours ^ foursA; - eights = (fours & foursA) | (u & foursB); - fours = u ^ foursB; - } - - tot8 += pop(eights); - } - - if (i <= (n - 4)) { - final int ai = aStart + i; - final int bi = bStart + i; - - long twosA = 0; - long twosB = 0; - long foursA = 0; - long eights = 0; - - { - final long b = matrixA[ai] & matrixB[bi], c = matrixA[ai + 1] & matrixB[bi + 1]; - final long u = ones ^ b; - twosA = (ones & b) | (u & c); - ones = u ^ c; - } - - { - final long b = matrixA[ai + 2] & matrixB[bi + 2], c = matrixA[ai + 3] & matrixB[bi + 3]; - final long u = ones ^ b; - twosB = (ones & b) | (u & c); - ones = u ^ c; - } - - { - final long u = twos ^ twosA; - foursA = (twos & twosA) | (u & twosB); - twos = u ^ twosB; - } - - eights = fours & foursA; - fours = fours ^ foursA; - - tot8 += pop(eights); - i += 4; - } - - if (i <= (n - 2)) { - final int ai = aStart + i; - final int bi = bStart + i; - - final long b = matrixA[ai] & matrixB[bi], c = matrixA[ai + 1] & matrixB[bi + 1]; - final long u = ones ^ b; - final long twosA = (ones & b) | (u & c); - ones = u ^ c; - - final long foursA = twos & twosA; - twos = twos ^ twosA; - - final long eights = fours & foursA; - fours = fours ^ foursA; - - tot8 += pop(eights); - i += 2; - } - - if (i < n) { - final int ai = aStart + i; - final int bi = bStart + i; - - tot += pop(matrixA[ai] & matrixB[bi]); - } - - tot += (pop(fours) << 2) + (pop(twos) << 1) + pop(ones) + (tot8 << 3); - - return tot; - } - - /** - * Returns the number of bits set in the long - */ - private int pop(long x) { - - /* - * http://grepcode.com/file/repo1.maven.org/maven2/org.apache.lucene/lucene-core/3.1.0/org/apache/lucene/util/BitUtil.java - */ - - /* - * Hacker's Delight 32 bit pop function: - * http://www.hackersdelight.org/HDcode/newCode/pop_arrayHS.c.txt - * - * int pop(unsigned x) { - * x = x - ((x >> 1) & 0x55555555); - * x = (x & 0x33333333) + ((x >> 2) & 0x33333333); - * x = (x + (x >> 4)) & 0x0F0F0F0F; - * x = x + (x >> 8); - * x = x + (x >> 16); - * return x & 0x0000003F; - * } - * * - */ - - // 64 bit java version of the C function from above - x = x - ((x >>> 1) & 0x5555555555555555L); - x = (x & 0x3333333333333333L) + ((x >>> 2) & 0x3333333333333333L); - x = (x + (x >>> 4)) & 0x0F0F0F0F0F0F0F0FL; - x = x + (x >>> 8); - x = x + (x >>> 16); - x = x + (x >>> 32); - return (int) x & 0x7F; - } -} diff --git a/examples/correlation-matrix/src/java/log4j.xml b/examples/correlation-matrix/src/java/log4j.xml deleted file mode 100644 index 03aa30df..00000000 --- a/examples/correlation-matrix/src/java/log4j.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/correlation-matrix/src/test/gov/pnnl/aparapi/test/CorrMatrixTest.java b/examples/correlation-matrix/src/test/gov/pnnl/aparapi/test/CorrMatrixTest.java deleted file mode 100644 index dfde8a66..00000000 --- a/examples/correlation-matrix/src/test/gov/pnnl/aparapi/test/CorrMatrixTest.java +++ /dev/null @@ -1,169 +0,0 @@ -/** - * This material was prepared as an account of work sponsored by an agency of the United States Government. - * Neither the United States Government nor the United States Department of Energy, nor Battelle, nor any of - * their employees, nor any jurisdiction or organization that has cooperated in the development of these materials, - * makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, - * completeness, or usefulness or any information, apparatus, product, software, or process disclosed, or represents - * that its use would not infringe privately owned rights. - */ -package gov.pnnl.aparapi.test; - -import gov.pnnl.aparapi.matrix.CorrMatrixHost; - -import java.io.File; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Random; - -import org.apache.commons.lang3.tuple.ImmutablePair; -import org.apache.commons.lang3.tuple.Pair; -import org.apache.log4j.Logger; -import org.apache.lucene.util.OpenBitSet; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.amd.aparapi.Kernel.EXECUTION_MODE; - -/** - * This test class performs the following functions: - * - * 1) Create a randomly populated set of matrices for correlation/co-occurrence computation - * 2) Execute the CPU-based computation using Lucene OpenBitSets - * 3) Execute the GPU-based computation using Aparapi CorrMatrix host and kernel - * 4) Verify the results of OpenBitSet and CorrMatrix by comparing matrices to each other - * - * @author ryan.lamothe at gmail.com - * - */ -public class CorrMatrixTest { - - private static final Logger LOG = Logger.getLogger(CorrMatrixTest.class); - - private final List> obsPairs = new ArrayList>();; - - private final Random rand = new Random(); - - private int[][] obsResultMatrix; - - /** - * NumTerms and NumLongs (documents) need to be adjusted manually right now to force 'striping' to occur (see Host code for details) - */ - @Before - public void setup() throws Exception { - /* - * Populate test data - */ - LOG.debug("----------"); - LOG.debug("Populating test matrix data using settings from build.xml..."); - LOG.debug("----------"); - - final int numTerms = Integer.getInteger("numRows", 300); // # Rows - // numLongs*64 for number of actual documents since these are 'packed' longs - final int numLongs = Integer.getInteger("numColumns", 10000); // # Columns - - for (int i = 0; i < numTerms; ++i) { - final long[] bits = new long[numLongs]; - for (int j = 0; j < numLongs; ++j) { - bits[j] = rand.nextLong(); - } - - obsPairs.add(i, new ImmutablePair(new OpenBitSet(bits, numLongs), new OpenBitSet(bits, numLongs))); - } - - /* - * OpenBitSet calculations - */ - LOG.debug("Executing OpenBitSet intersectionCount"); - - final long startTime = System.currentTimeMillis(); - - obsResultMatrix = new int[obsPairs.size()][obsPairs.size()]; - - // This is an N^2 comparison loop - // FIXME This entire loop needs to be parallelized to show an apples-to-apples comparison to Aparapi - for (int i = 0; i < obsPairs.size(); i++) { - final Pair docFreqVector1 = obsPairs.get(i); - - for (int j = 0; j < obsPairs.size(); j++) { - final Pair docFreqVector2 = obsPairs.get(j); - - // # of matches in both sets of documents - final int result = (int) OpenBitSet.intersectionCount(docFreqVector1.getLeft(), docFreqVector2.getRight()); - obsResultMatrix[i][j] = result; - } - } - - final long endTime = System.currentTimeMillis() - startTime; - - LOG.debug("OpenBitSet Gross Execution Time: " + endTime + " ms <------OpenBitSet"); - LOG.debug("----------"); - } - - @Test - public void testCorrelationMatrix() throws Exception { - /* - * GPU calculations - */ - LOG.debug("Executing Aparapi intersectionCount"); - - final long[][] matrixA = new long[obsPairs.size()][]; - final long[][] matrixB = new long[obsPairs.size()][]; - - // Convert OpenBitSet pairs to long primitive arrays for use with Aparapi - // TODO It would be nice if we could find a way to put the obsPairs onto the GPU directly :) - for (int i = 0; i < obsPairs.size(); i++) { - final OpenBitSet obsA = obsPairs.get(i).getLeft(); - final OpenBitSet obsB = obsPairs.get(i).getRight(); - - matrixA[i] = obsA.getBits(); - matrixB[i] = obsB.getBits(); - } - - // The reason for setting this property is because the CorrMatrix host/kernel code - // came from a GUI where a user could select "Use Hardware Acceleration" instead - // of the application forcing the setting globally on the command-line - final int[][] gpuResultMatrix; - if (Boolean.getBoolean("useGPU")) { - gpuResultMatrix = CorrMatrixHost.intersectionMatrix(matrixA, matrixB, EXECUTION_MODE.GPU); - } else { - gpuResultMatrix = CorrMatrixHost.intersectionMatrix(matrixA, matrixB, EXECUTION_MODE.CPU); - } - - // Compare the two result arrays to make sure we are generating the same output - for (int i = 0; i < obsResultMatrix.length; i++) { - Assert.assertTrue("Arrays are not equal", Arrays.equals(obsResultMatrix[i], gpuResultMatrix[i])); - } - - // Visually compare/third-party tool compare if desired - if (LOG.isTraceEnabled()) { - // We're not using "try with resources" because Aparapi currently targets JDK 6 - final PrintWriter cpuOut = new PrintWriter(new File(System.getProperty("user.dir"), "trace/cpuOut.txt")); - final PrintWriter gpuOut = new PrintWriter(new File(System.getProperty("user.dir"), "trace/gpuOut.txt")); - - try { - for (int i = 0; i < obsResultMatrix.length; i++) { - if (LOG.isTraceEnabled()) { - LOG.trace("obsResultMatrix length: " + obsResultMatrix.length); - LOG.trace("gpuResultMatrix length: " + gpuResultMatrix.length); - - cpuOut.println(Arrays.toString(obsResultMatrix[i])); - gpuOut.println(Arrays.toString(gpuResultMatrix[i])); - } - } - } finally { - if (cpuOut != null) { - cpuOut.flush(); - cpuOut.close(); - } - - if (gpuOut != null) { - gpuOut.flush(); - gpuOut.close(); - } - } - } - } -} diff --git a/examples/effects/.classpath b/examples/effects/.classpath deleted file mode 100644 index 43bd144c..00000000 --- a/examples/effects/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/examples/effects/.project b/examples/effects/.project deleted file mode 100644 index 525cddc8..00000000 --- a/examples/effects/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - effects - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/effects/build.xml b/examples/effects/build.xml deleted file mode 100644 index 7874c120..00000000 --- a/examples/effects/build.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/effects/src/com/amd/aparapi/examples/effects/Main.java b/examples/effects/src/com/amd/aparapi/examples/effects/Main.java deleted file mode 100644 index 5543d94c..00000000 --- a/examples/effects/src/com/amd/aparapi/examples/effects/Main.java +++ /dev/null @@ -1,285 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.examples.effects; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseEvent; -import java.awt.event.MouseMotionAdapter; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; - -import javax.swing.JComponent; -import javax.swing.JFrame; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which tracks the mouse and updates the color pallete of the window based on the distance from the mouse pointer. - * - * On GPU, additional computing units will offer a better viewing experience. On the other hand on CPU, this example - * application might suffer with sub-optimal frame refresh rate as compared to GPU. - * - * @author gfrost - * - */ - -public class Main{ - - /** - * An Aparapi Kernel implementation for tracking the mouse position and coloring each pixel of a window depending on proximity to the mouse position. - * - * @author gfrost - * - */ - - public static class MouseTrackKernel extends Kernel{ - - /** RGB buffer used to store the screen image. This buffer holds (width * height) RGB values. */ - final private int rgb[]; - - /** image width. */ - final private int width; - - /** image height. */ - final private int height; - - /** Palette used for points */ - final private int pallette[]; - - /** Maximum iterations we will check for. */ - final private int palletteSize; - - /** Mutable values of scale, offsetx and offsety so that we can modify the zoom level and position of a view. */ - - final private float[] trailx; - - final private float[] traily; - - final private int trail; - - /** - * Initialize the Kernel. - * - * @param _width image width - * @param _height image height - * @param _rgb image RGB buffer - * @param _pallette image palette - * @param _trailx float array holding x ordinates for mouse trail positions - * @param _traily float array holding y ordinates for mouse trail positions - */ - public MouseTrackKernel(int _width, int _height, int[] _rgb, int[] _pallette, float[] _trailx, float[] _traily) { - width = _width; - height = _height; - rgb = _rgb; - pallette = _pallette; - palletteSize = pallette.length - 1; - trailx = _trailx; - traily = _traily; - trail = trailx.length; - } - - @Override public void run() { - - /** Determine which RGB value we are going to process (0..RGB.length). */ - int gid = getGlobalId(); - - /** Translate the gid into an x an y value. */ - float x = (gid % width); - - float y = (gid / height); - - float minRadius = 1024f; - - /** determine the minimum radius between this pixel position (x,y) and each of the trail positions _trailx[0..n],_traily[0..n] **/ - for (int i = 0; i < trail; i++) { - float dx = x - trailx[i]; - float dy = y - traily[i]; - minRadius = min(sqrt(dx * dx + dy * dy), minRadius); - } - - /** convert the radius length into an index into the pallete array **/ - int palletteIndex = min((int) minRadius, palletteSize); - - /** set the rgb value for this color **/ - rgb[gid] = pallette[palletteIndex]; - - } - - } - - /** We track the latest mouse position here. */ - public static volatile Point mousePosition = null; - - @SuppressWarnings("serial") public static void main(String[] _args) { - - JFrame frame = new JFrame("MouseTracker"); - - /** Width of Mandelbrot view. */ - final int width = 1024; - - /** Height of Mandelbrot view. */ - final int height = 1024; - - final Range range = Range.create2D(width, height); - - /** The size of the pallette of pixel colors we choose from. */ - final int palletteSize = 128; - - /** Palette which maps iteration values to RGB values. */ - final int pallette[] = new int[palletteSize + 1]; - - /** Initialize palette values **/ - for (int i = 0; i < palletteSize; i++) { - float h = i / (float) palletteSize; - float b = 1.0f - h * h; - pallette[i] = Color.HSBtoRGB(h, 1f, b); - } - - /** We will keep a trail of 64 mouse positions **/ - final float trailx[] = new float[64]; - final float traily[] = new float[trailx.length]; - - /** Image for view. */ - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - final BufferedImage offscreen = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - - /** Override the paint handler to just copy the image **/ - JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - - g.drawImage(image, 0, 0, width, height, this); - } - }; - - /** Set the size of JComponent which displays the image **/ - viewer.setPreferredSize(new Dimension(width, height)); - - /** We use this to synchronize access from Swing display thread **/ - final Object doorBell = new Object(); - - /** Mouse listener which collects the latest the mouse position from Mandelbrot view whenever the mouse is moved **/ - viewer.addMouseMotionListener(new MouseMotionAdapter(){ - - @Override public void mouseMoved(MouseEvent e) { - /** grab the mouse position **/ - mousePosition = e.getPoint(); - - /** tell the waitin thread that we have a new position **/ - synchronized (doorBell) { - doorBell.notify(); - } - } - }); - - /** Swing housework to create the frame **/ - frame.getContentPane().add(viewer); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - - /** Extract the underlying RGB buffer from the image. **/ - /** Pass this to the kernel so it operates directly on the RGB buffer of the image **/ - final int[] rgb = ((DataBufferInt) offscreen.getRaster().getDataBuffer()).getData(); - final int[] imageRgb = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); - - /** Create a Kernel passing the size, RGB buffer, the palette and the trail positions **/ - final MouseTrackKernel kernel = new MouseTrackKernel(width, height, rgb, pallette, trailx, traily); - - /** initialize the trail positions to center of screen **/ - for (int i = 0; i < trailx.length; i++) { - trailx[i] = (float) width / 2; - traily[i] = (float) width / 2; - } - - /** we use this to track the position where we insert latest mouse position, just a circular buffer **/ - - int trailLastUpdatedPosition = 0; - - kernel.execute(range); - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - - /** Report target execution mode: GPU or JTP (Java Thread Pool). **/ - System.out.println("Execution mode=" + kernel.getExecutionMode()); - - /** Window listener to dispose Kernel resources on user exit. **/ - frame.addWindowListener(new WindowAdapter(){ - public void windowClosing(WindowEvent _windowEvent) { - kernel.dispose(); - System.exit(0); - } - }); - - /** update loop**/ - while (true) { - - /** Wait for the user to move mouse **/ - while (mousePosition == null) { - synchronized (doorBell) { - try { - doorBell.wait(); - } catch (InterruptedException ie) { - ie.getStackTrace(); - } - } - } - /** add the new x,y to the trail arrays and bump the poition **/ - trailx[trailLastUpdatedPosition % trailx.length] = (float) mousePosition.x; - traily[trailLastUpdatedPosition % traily.length] = (float) mousePosition.y; - trailLastUpdatedPosition++; - - /** execute the kernel which calculates new pixel values **/ - kernel.execute(range); - - /** copy the rgb values to the imageRgb buffer **/ - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - - /** request a repaint **/ - viewer.repaint(); - } - - } - -} diff --git a/examples/javaonedemo/.classpath b/examples/javaonedemo/.classpath deleted file mode 100644 index 575871bd..00000000 --- a/examples/javaonedemo/.classpath +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/examples/javaonedemo/.project b/examples/javaonedemo/.project deleted file mode 100644 index bd14ae41..00000000 --- a/examples/javaonedemo/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - javaonedemo - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/javaonedemo/build.xml b/examples/javaonedemo/build.xml deleted file mode 100644 index 4b4a8711..00000000 --- a/examples/javaonedemo/build.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/javaonedemo/get-jogamp-build.xml b/examples/javaonedemo/get-jogamp-build.xml deleted file mode 100644 index 78b2b35d..00000000 --- a/examples/javaonedemo/get-jogamp-build.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/javaonedemo/jogamp/GLUEGEN_LICENSE.txt b/examples/javaonedemo/jogamp/GLUEGEN_LICENSE.txt deleted file mode 100644 index 2bd372d8..00000000 --- a/examples/javaonedemo/jogamp/GLUEGEN_LICENSE.txt +++ /dev/null @@ -1,131 +0,0 @@ -The GlueGen source code is mostly licensed under the New BSD 2-clause license, -however it contains other licensed material as well. - -Below you find a detailed list of licenses used in this project. - -+++ - -The content of folder 'make/lib' contains build-time only -Java binaries (JAR) to ease the build setup. -Each JAR file has it's corresponding LICENSE file containing the -source location and license text. None of these binaries are contained in any way -by the generated and deployed GlueGen binaries. - -+++ - -L.1) The GlueGen source tree contains code from the JogAmp Community - which is covered by the Simplified BSD 2-clause license: - - Copyright 2010 JogAmp Community. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are - permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this list of - conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - of conditions and the following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - The views and conclusions contained in the software and documentation are those of the - authors and should not be interpreted as representing official policies, either expressed - or implied, of JogAmp Community. - - You can address the JogAmp Community via: - Web http://jogamp.org/ - Forum/Mailinglist http://jogamp.762907.n3.nabble.com/ - JogAmp Channel server: conference.jabber.org room: jogamp - Repository http://jogamp.org/git/ - Email mediastream _at_ jogamp _dot_ org - - -L.2) The GlueGen source tree contains code from Sun Microsystems, Inc. - which is covered by the New BSD 3-clause license: - - Copyright (c) 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - - Redistribution of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistribution in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - Neither the name of Sun Microsystems, Inc. or the names of - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - This software is provided "AS IS," without a warranty of any kind. ALL - EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - You acknowledge that this software is not designed or intended for use - in the design, construction, operation or maintenance of any nuclear - facility. - -L.3) The GlueGen source tree contains CGRAM http://www.antlr.org/grammar/cgram/, - a ANSI-C parser implementation using ANTLR, which is being used - in the compile time part only. - It is covered by the Original BSD 4-clause license: - - Copyright (c) 1998-2000, Non, Inc. - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions, and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions, and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - - All advertising materials mentioning features or use of this - software must display the following acknowledgement: - - This product includes software developed by Non, Inc. and - its contributors. - - Neither name of the company nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS - IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COMPANY OR CONTRIBUTORS BE - LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - - diff --git a/examples/javaonedemo/jogamp/JOGL_LICENSE.txt b/examples/javaonedemo/jogamp/JOGL_LICENSE.txt deleted file mode 100644 index 9cb01d45..00000000 --- a/examples/javaonedemo/jogamp/JOGL_LICENSE.txt +++ /dev/null @@ -1,364 +0,0 @@ -The JOGL source code is mostly licensed under the New BSD 2-clause license, -however it contains other licensed material as well. - -Below you find a detailed list of licenses used in this project. - -+++ - -The content of folder 'make/lib' contains build- and test-time only -Java binaries (JAR) to ease the build setup. -Each JAR file has it's corresponding LICENSE file containing the -source location and license text. None of these binaries are contained in any way -by the generated and deployed JOGL binaries. - -+++ - -L.1) The JOGL source tree contains code from the JogAmp Community - which is covered by the Simplified BSD 2-clause license: - - Copyright 2010 JogAmp Community. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are - permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, this list of - conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, this list - of conditions and the following disclaimer in the documentation and/or other materials - provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY JogAmp Community ``AS IS'' AND ANY EXPRESS OR IMPLIED - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JogAmp Community OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - The views and conclusions contained in the software and documentation are those of the - authors and should not be interpreted as representing official policies, either expressed - or implied, of JogAmp Community. - - You can address the JogAmp Community via: - Web http://jogamp.org/ - Forum/Mailinglist http://forum.jogamp.org - JogAmp Channel server: conference.jabber.org room: jogamp - Repository http://jogamp.org/git/ - Email mediastream _at_ jogamp _dot_ org - - -L.2) The JOGL source tree contains code from Sun Microsystems, Inc. - which is covered by the New BSD 3-clause license: - - Copyright (c) 2003-2009 Sun Microsystems, Inc. All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - - Redistribution of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistribution in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - Neither the name of Sun Microsystems, Inc. or the names of - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - - This software is provided "AS IS," without a warranty of any kind. ALL - EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, - INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A - PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN - MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR - ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR - DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR - ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR - DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE - DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, - ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF - SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - - You acknowledge that this software is not designed or intended for use - in the design, construction, operation or maintenance of any nuclear - facility. - -L.3) The JOGL source tree contains code ported from the OpenGL sample - implementation by Silicon Graphics, Inc. This code is licensed under - the SGI Free Software License B, Version 2.0 - - License Applicability. Except to the extent portions of this file are - made subject to an alternative license as permitted in the SGI Free - Software License B, Version 2.0 (the "License"), the contents of this - file are subject only to the provisions of the License. You may not use - this file except in compliance with the License. You may obtain a copy - of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 - Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: - - http://oss.sgi.com/projects/FreeB - http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf - Or within this repository: doc/licenses/SGIFreeSWLicB.2.0.pdf - - Note that, as provided in the License, the Software is distributed on an - "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS - DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND - CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A - PARTICULAR PURPOSE, AND NON-INFRINGEMENT. - -L.4) The JOGL source tree contains code from the LWJGL project which is - similarly covered by the New BSD 3-clause license: - - Copyright (c) 2002-2004 LWJGL Project - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - * Neither the name of 'LWJGL' nor the names of - its contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -L.5) The JOGL source tree also contains a Java port of Brian Paul's Tile - Rendering library, used with permission of the author under the - New BSD 3-clause license instead of the original LGPL: - - Copyright (c) 1997-2005 Brian Paul. All Rights Reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are - met: - - - Redistribution of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Redistribution in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - Neither the name of Brian Paul or the names of contributors may be - used to endorse or promote products derived from this software - without specific prior written permission. - - This software is provided "AS IS," without a warranty of any - kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND - WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY - EXCLUDED. THE COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT BE - LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, - MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO - EVENT WILL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY - LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, - CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND - REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR - INABILITY TO USE THIS SOFTWARE, EVEN IF THE COPYRIGHT HOLDERS OR - CONTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -A.1) The JOGL source tree also contains header files from Khronos, - reflecting OpenKODE, EGL, OpenGL ES1, OpenGL ES2 and OpenGL. - - http://www.khronos.org/legal/license/ - - Files: - make/stub_includes/opengl/** - make/stub_includes/egl/** - make/stub_includes/khr/** - make/stub_includes/openmax/** - - Copyright (c) 2007-2010 The Khronos Group Inc. - - Permission is hereby granted, free of charge, to any person obtaining a - copy of this software and/or associated documentation files (the - "Materials"), to deal in the Materials without restriction, including - without limitation the rights to use, copy, modify, merge, publish, - distribute, sublicense, and/or sell copies of the Materials, and to - permit persons to whom the Materials are furnished to do so, subject to - the following conditions: - - The above copyright notice and this permission notice shall be included - in all copies or substantial portions of the Materials. - - THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE - MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. - - -A.2) The JOGL source tree contains code from The Apache Software Foundation - which is covered by the Apache License Version 2.0 - - Apache Harmony - Open Source Java SE - ===================================== - - - - Author: The Apache Software Foundation (http://www.apache.org/). - - Copyright 2006, 2010 The Apache Software Foundation. - - Apache License Version 2.0, January 2004 - http://www.apache.org/licenses/LICENSE-2.0 - Or within this repository: doc/licenses/Apache.LICENSE-2.0 - - Files: - src/jogamp/graph/geom/plane/AffineTransform.java - src/jogamp/graph/geom/plane/IllegalPathStateException.java - src/jogamp/graph/geom/plane/NoninvertibleTransformException.java - src/jogamp/graph/geom/plane/PathIterator.java - src/jogamp/graph/geom/plane/Path2D.java - src/jogamp/graph/math/plane/Crossing.java - src/org/apache/harmony/misc/HashCode.java - - -A.3) The JOGL source tree contains code from David Schweinsberg - which is covered by the Apache License Version 1.1 and Version 2.0 - - Typecast - ======== - - Typecast is a font development environment for OpenType font technology. - - - - Author: David Schweinsberg - - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved. - - Apache Licenses - http://www.apache.org/licenses/ - - Apache License Version 1.1 - http://www.apache.org/licenses/LICENSE-1.1 - Or within this repository: doc/licenses/Apache.LICENSE-1.1 - Files: - src/jogl/classes/jogamp/graph/font/typecast/ot/* - src/jogl/classes/jogamp/graph/font/typecast/ot/table/* - - Apache License Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0 - Or within this repository: doc/licenses/Apache.LICENSE-2.0 - src/jogl/classes/jogamp/graph/font/typecast/ot/* - src/jogl/classes/jogamp/graph/font/typecast/ot/mac/* - src/jogl/classes/jogamp/graph/font/typecast/ot/table/* - src/jogl/classes/jogamp/graph/font/typecast/tt/engine/* - -A.4) The JOGL source tree contains fonts from Ubuntu - which is covered by the UBUNTU FONT LICENCE Version 1.0 - - Ubuntu Font Family - ================== - - The Ubuntu Font Family are libre fonts funded by Canonical Ltd on behalf of the Ubuntu project. - - - - Copyright 2010 Canonical Ltd. - Licensed under the Ubuntu Font Licence 1.0 - - Author: Canonical Ltd., Dalton Maag - - UBUNTU FONT LICENCE - Version 1.0 - http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt - Or within this repository: doc/licenses/ubuntu-font-licence-1.0.txt - - Files: - src/jogamp/graph/font/fonts/ubuntu/* - -A.5) The JOGL source tree also contains header files from NVIDIA, - reflecting Cg. - - Files: - make/stub_includes/cg/CG/** - - Copyright (c) 2002, NVIDIA Corporation - - NVIDIA Corporation("NVIDIA") supplies this software to you in consideration - of your agreement to the following terms, and your use, installation, - modification or redistribution of this NVIDIA software constitutes - acceptance of these terms. If you do not agree with these terms, please do - not use, install, modify or redistribute this NVIDIA software. - - In consideration of your agreement to abide by the following terms, and - subject to these terms, NVIDIA grants you a personal, non-exclusive license, - under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA - Software"), to use, reproduce, modify and redistribute the NVIDIA - Software, with or without modifications, in source and/or binary forms; - provided that if you redistribute the NVIDIA Software, you must retain the - copyright notice of NVIDIA, this notice and the following text and - disclaimers in all such redistributions of the NVIDIA Software. Neither the - name, trademarks, service marks nor logos of NVIDIA Corporation may be used - to endorse or promote products derived from the NVIDIA Software without - specific prior written permission from NVIDIA. Except as expressly stated - in this notice, no other rights or licenses express or implied, are granted - by NVIDIA herein, including but not limited to any patent rights that may be - infringed by your derivative works or by other works in which the NVIDIA - Software may be incorporated. No hardware is licensed hereunder. - - THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT - WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING - WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION - EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS. - - IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, - EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST - PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE, - REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE, - HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING - NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - -A.6) The JOGL source tree contains code from Hernan J. Gonzalez and Shawn Hartsock - which is covered by the Apache License Version 2.0 - - PNGJ - ==== - - PNGJ: Java library for reading and writing PNG images. - - Version 0.85 (1 April 2012) - - - - Author: Hernan J. Gonzalez and Shawn Hartsock - - Copyright (C) 2004 The Apache Software Foundation. All rights reserved. - - Apache Licenses - http://www.apache.org/licenses/ - - Apache License Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0 - Or within this repository: doc/licenses/Apache.LICENSE-2.0 - src/jogl/classes/jogamp/opengl/util/pngj/** - - - diff --git a/examples/javaonedemo/jogamp/gluegen-rt-natives-windows-amd64.jar b/examples/javaonedemo/jogamp/gluegen-rt-natives-windows-amd64.jar deleted file mode 100644 index c65a1193..00000000 Binary files a/examples/javaonedemo/jogamp/gluegen-rt-natives-windows-amd64.jar and /dev/null differ diff --git a/examples/javaonedemo/jogamp/gluegen-rt.dll b/examples/javaonedemo/jogamp/gluegen-rt.dll deleted file mode 100644 index 2d5f8b0e..00000000 Binary files a/examples/javaonedemo/jogamp/gluegen-rt.dll and /dev/null differ diff --git a/examples/javaonedemo/jogamp/gluegen-rt.jar b/examples/javaonedemo/jogamp/gluegen-rt.jar deleted file mode 100644 index ff3c8f7c..00000000 Binary files a/examples/javaonedemo/jogamp/gluegen-rt.jar and /dev/null differ diff --git a/examples/javaonedemo/jogamp/jogl-all-natives-windows-amd64.jar b/examples/javaonedemo/jogamp/jogl-all-natives-windows-amd64.jar deleted file mode 100644 index 20fa64f2..00000000 Binary files a/examples/javaonedemo/jogamp/jogl-all-natives-windows-amd64.jar and /dev/null differ diff --git a/examples/javaonedemo/jogamp/jogl.all.jar b/examples/javaonedemo/jogamp/jogl.all.jar deleted file mode 100644 index 14ce067e..00000000 Binary files a/examples/javaonedemo/jogamp/jogl.all.jar and /dev/null differ diff --git a/examples/javaonedemo/jogamp/jogl_desktop.dll b/examples/javaonedemo/jogamp/jogl_desktop.dll deleted file mode 100644 index c65fef94..00000000 Binary files a/examples/javaonedemo/jogamp/jogl_desktop.dll and /dev/null differ diff --git a/examples/javaonedemo/jogamp/jogl_mobile.dll b/examples/javaonedemo/jogamp/jogl_mobile.dll deleted file mode 100644 index 1d29be37..00000000 Binary files a/examples/javaonedemo/jogamp/jogl_mobile.dll and /dev/null differ diff --git a/examples/javaonedemo/jogamp/nativewindow_awt.dll b/examples/javaonedemo/jogamp/nativewindow_awt.dll deleted file mode 100644 index e791e4c6..00000000 Binary files a/examples/javaonedemo/jogamp/nativewindow_awt.dll and /dev/null differ diff --git a/examples/javaonedemo/jogamp/nativewindow_win32.dll b/examples/javaonedemo/jogamp/nativewindow_win32.dll deleted file mode 100644 index 4afd2b86..00000000 Binary files a/examples/javaonedemo/jogamp/nativewindow_win32.dll and /dev/null differ diff --git a/examples/javaonedemo/jogamp/newt.dll b/examples/javaonedemo/jogamp/newt.dll deleted file mode 100644 index 30565191..00000000 Binary files a/examples/javaonedemo/jogamp/newt.dll and /dev/null differ diff --git a/examples/javaonedemo/life.bat b/examples/javaonedemo/life.bat deleted file mode 100644 index 7b3bd0bf..00000000 --- a/examples/javaonedemo/life.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;javaonedemo.jar ^ - com.amd.aparapi.examples.javaonedemo.Life - - diff --git a/examples/javaonedemo/life.sh b/examples/javaonedemo/life.sh deleted file mode 100644 index f39968d4..00000000 --- a/examples/javaonedemo/life.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist \ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:javaonedemo.jar \ - com.amd.aparapi.examples.javaonedemo.Life diff --git a/examples/javaonedemo/mandel.bat b/examples/javaonedemo/mandel.bat deleted file mode 100644 index f8372d85..00000000 --- a/examples/javaonedemo/mandel.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;javaonedemo.jar ^ - com.amd.aparapi.examples.javaonedemo.Mandel - - diff --git a/examples/javaonedemo/mandel.sh b/examples/javaonedemo/mandel.sh deleted file mode 100644 index 976f8b8c..00000000 --- a/examples/javaonedemo/mandel.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist \ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:javaonedemo.jar \ - com.amd.aparapi.examples.javaonedemo.Mandel diff --git a/examples/javaonedemo/nbody.bat b/examples/javaonedemo/nbody.bat deleted file mode 100644 index 00927050..00000000 --- a/examples/javaonedemo/nbody.bat +++ /dev/null @@ -1,7 +0,0 @@ -@echo off -java ^ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist;..\third-party\jogamp\windows-%PROCESSOR_ARCHITECTURE% ^ - -classpath ..\third-party\jogamp\gluegen-rt.jar;..\third-party\jogamp\jogl-all.jar;..\..\com.amd.aparapi\dist\aparapi.jar;javaonedemo.jar ^ - com.amd.aparapi.examples.javaonedemo.NBody - - diff --git a/examples/javaonedemo/nbody.sh b/examples/javaonedemo/nbody.sh deleted file mode 100644 index 7505a7db..00000000 --- a/examples/javaonedemo/nbody.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -java -Djava.library.path=../../com.amd.aparapi.jni/dist:../third-party/jogamp \ - -classpath ../third-party/jogamp/gluegen-rt.jar:../third-party/jogamp/jogl-all.jar:../../com.amd.aparapi/dist/aparapi.jar:javaonedemo.jar \ - com.amd.aparapi.examples.javaonedemo.NBody diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java deleted file mode 100644 index 4d79f50c..00000000 --- a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Life.java +++ /dev/null @@ -1,302 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.examples.javaonedemo; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; -import java.util.Arrays; -import java.util.List; - -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which demonstrates Conways 'Game Of Life'. - * - * Original code from Witold Bolt's site https://github.com/houp/aparapi/tree/master/samples/gameoflife. - * - * Converted to use int buffer and some performance tweaks by Gary Frost - * - * @author Wiltold Bolt - * @author Gary Frost - */ -public class Life{ - - /** - * LifeKernel represents the data parallel algorithm describing by Conway's game of life. - * - * http://en.wikipedia.org/wiki/Conway's_Game_of_Life - * - * We examine the state of each pixel and its 8 neighbors and apply the following rules. - * - * if pixel is dead (off) and number of neighbors == 3 { - * pixel is turned on - * } else if pixel is alive (on) and number of neighbors is neither 2 or 3 - * pixel is turned off - * } - * - * We use an image buffer which is 2*width*height the size of screen and we use fromBase and toBase to track which half of the buffer is being mutated for each pass. We basically - * copy from getGlobalId()+fromBase to getGlobalId()+toBase; - * - * - * Prior to each pass the values of fromBase and toBase are swapped. - * - */ - - public static class LifeKernel extends Kernel{ - - private static final int ALIVE = 0xffffff; - - private static final int DEAD = 0; - - private final int[] imageData; - - private final int width; - - private final int height; - - private final Range range; - - private int fromBase; - - private int toBase; - - public LifeKernel(int _width, int _height, BufferedImage _image) { - - imageData = ((DataBufferInt) _image.getRaster().getDataBuffer()).getData(); - width = _width; - height = _height; - range = Range.create(width * height, 256); - System.out.println("range = " + range); - - setExplicit(true); // This gives us a performance boost for GPU mode. - - fromBase = height * width; - toBase = 0; - Arrays.fill(imageData, LifeKernel.DEAD); - /** draw a line across the image **/ - for (int i = (width * (height / 2)) + (width / 10); i < ((width * ((height / 2) + 1)) - (width / 10)); i++) { - imageData[toBase + i] = LifeKernel.ALIVE; - imageData[fromBase + i] = LifeKernel.ALIVE; - } - - put(imageData); // Because we are using explicit buffer management we must put the imageData array - - } - - @Override public void run() { - final int gid = getGlobalId(); - final int to = gid + toBase; - final int from = gid + fromBase; - final int x = gid % width; - final int y = gid / width; - - if (((x == 0) || (x == (width - 1)) || (y == 0) || (y == (height - 1)))) { - // This pixel is on the border of the view, just keep existing value - imageData[to] = imageData[from]; - } else { - // Count the number of neighbors. We use (value&1x) to turn pixel value into either 0 or 1 - final int neighbors = (imageData[from - 1] & 1) + // EAST - (imageData[from + 1] & 1) + // WEST - (imageData[from - width - 1] & 1) + // NORTHEAST - (imageData[from - width] & 1) + // NORTH - (imageData[(from - width) + 1] & 1) + // NORTHWEST - (imageData[(from + width) - 1] & 1) + // SOUTHEAST - (imageData[from + width] & 1) + // SOUTH - (imageData[from + width + 1] & 1); // SOUTHWEST - - // The game of life logic - if ((neighbors == 3) || ((neighbors == 2) && (imageData[from] == ALIVE))) { - imageData[to] = ALIVE; - } else { - imageData[to] = DEAD; - } - - } - - } - - public void nextGeneration() { - // swap fromBase and toBase - final int swap = fromBase; - fromBase = toBase; - toBase = swap; - - execute(range); - - } - - } - - static boolean running = false; - - // static LifeKernel lifeKernel = null; - - static long start = 0L; - - static int generations = 0; - - static double generationsPerSecondField = 0; - - public static void main(String[] _args) { - - final JFrame frame = new JFrame("Game of Life"); - final int width = Integer.getInteger("width", 1024 + 256); - - final int height = Integer.getInteger("height", 768 - 64 - 32); - - // Buffer is twice the size as the screen. We will alternate between mutating data from top to bottom - // and bottom to top in alternate generation passses. The LifeKernel will track which pass is which - final BufferedImage image = new BufferedImage(width, height * 2, BufferedImage.TYPE_INT_RGB); - - final LifeKernel lifeKernel = new LifeKernel(width, height, image); - lifeKernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - - final Font font = new Font("Garamond", Font.BOLD, 100); - // Create a component for viewing the offsecreen image - @SuppressWarnings("serial") final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - g.setFont(font); - g.setColor(Color.WHITE); - if (lifeKernel.isExplicit()) { - lifeKernel.get(lifeKernel.imageData); // We only pull the imageData when we intend to use it. - final List profileInfo = lifeKernel.getProfileInfo(); - if (profileInfo != null) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " - + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - } - // We copy one half of the offscreen buffer to the viewer, we copy the half that we just mutated. - if (lifeKernel.fromBase == 0) { - g.drawImage(image, 0, 0, width, height, 0, 0, width, height, this); - } else { - g.drawImage(image, 0, 0, width, height, 0, height, width, 2 * height, this); - } - final long now = System.currentTimeMillis(); - if ((now - start) > 1000) { - generationsPerSecondField = (generations * 1000.0) / (now - start); - start = now; - generations = 0; - } - g.drawString(String.format("%5.2f", generationsPerSecondField), 20, 100); - - } - }; - - final JPanel controlPanel = new JPanel(new FlowLayout()); - frame.getContentPane().add(controlPanel, BorderLayout.SOUTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - - final String[] choices = new String[] { - "Java Threads", - "GPU OpenCL" - }; - - final JComboBox modeButton = new JComboBox(choices); - - modeButton.addItemListener(new ItemListener(){ - @Override public void itemStateChanged(ItemEvent e) { - final String item = (String) modeButton.getSelectedItem(); - if (item.equals(choices[0])) { - lifeKernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - } else if (item.equals(choices[1])) { - lifeKernel.setExecutionMode(Kernel.EXECUTION_MODE.GPU); - } - } - - }); - controlPanel.add(modeButton); - - // Set the default size and add to the frames content pane - viewer.setPreferredSize(new Dimension(width, height)); - frame.getContentPane().add(viewer); - - // Swing housekeeping - frame.pack(); - frame.setVisible(true); - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - - while (!running) { - try { - Thread.sleep(10); - viewer.repaint(); - } catch (final InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - start = System.currentTimeMillis(); - while (true) { - lifeKernel.nextGeneration(); // Work is performed here - generations++; - viewer.repaint(); // Request a repaint of the viewer (causes paintComponent(Graphics) to be called later not synchronous - } - - } -} diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java deleted file mode 100644 index 1b1308f6..00000000 --- a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/Mandel.java +++ /dev/null @@ -1,347 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.examples.javaonedemo; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; -import java.util.List; - -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JPanel; - -import com.amd.aparapi.annotation.*; -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which displays a view of the Mandelbrot set and lets the user zoom in to a particular point. - * - * When the user clicks on the view, this example application will zoom in to the clicked point and zoom out there after. - * On GPU, additional computing units will offer a better viewing experience. On the other hand on CPU, this example - * application might suffer with sub-optimal frame refresh rate as compared to GPU. - * - * @author gfrost - * - */ - -public class Mandel{ - - /** - * An Aparapi Kernel implementation for creating a scaled view of the mandelbrot set. - * - * @author gfrost - * - */ - - public static class MandelKernel extends Kernel{ - - /** RGB buffer used to store the Mandelbrot image. This buffer holds (width * height) RGB values. */ - final private int rgb[]; - - /** Mandelbrot image width. */ - final private int width; - - /** Mandelbrot image height. */ - final private int height; - - /** Maximum iterations for Mandelbrot. */ - final private int maxIterations = 64; - - /** Palette which maps iteration values to RGB values. */ - @Constant final private int pallette[] = new int[maxIterations + 1]; - - /** Mutable values of scale, offsetx and offsety so that we can modify the zoom level and position of a view. */ - private float scale = .0f; - - private float offsetx = .0f; - - private float offsety = .0f; - - /** - * Initialize the Kernel. - * - * @param _width Mandelbrot image width - * @param _height Mandelbrot image height - * @param _rgb Mandelbrot image RGB buffer - * @param _pallette Mandelbrot image palette - */ - public MandelKernel(int _width, int _height, int[] _rgb) { - //Initialize palette values - for (int i = 0; i < maxIterations; i++) { - final float h = i / (float) maxIterations; - final float b = 1.0f - (h * h); - pallette[i] = Color.HSBtoRGB(h, 1f, b); - } - - width = _width; - height = _height; - rgb = _rgb; - - } - - @Override public void run() { - - /** Determine which RGB value we are going to process (0..RGB.length). */ - final int gid = getGlobalId(); - - /** Translate the gid into an x an y value. */ - final float x = ((((gid % width) * scale) - ((scale / 2) * width)) / width) + offsetx; - - final float y = ((((gid / height) * scale) - ((scale / 2) * height)) / height) + offsety; - - int count = 0; - - float zx = x; - float zy = y; - float new_zx = 0f; - - // Iterate until the algorithm converges or until maxIterations are reached. - while ((count < maxIterations) && (((zx * zx) + (zy * zy)) < 8)) { - new_zx = ((zx * zx) - (zy * zy)) + x; - zy = (2 * zx * zy) + y; - zx = new_zx; - count++; - } - - // Pull the value out of the palette for this iteration count. - rgb[gid] = pallette[count]; - } - - public void setScaleAndOffset(float _scale, float _offsetx, float _offsety) { - offsetx = _offsetx; - offsety = _offsety; - scale = _scale; - } - - } - - /** User selected zoom-in point on the Mandelbrot view. */ - public static volatile Point to = null; - - public static int frameCount = 0; - - public static long start = 0; - - @SuppressWarnings("serial") public static void main(String[] _args) { - - final JFrame frame = new JFrame("MandelBrot"); - - /** Width of Mandelbrot view. */ - final int width = 768 - 64 - 32; - - /** Height of Mandelbrot view. */ - final int height = 768 - 64 - 32; - - /** Mandelbrot image height. */ - final Range range = Range.create(width * height); - - /** Image for Mandelbrot view. */ - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - final BufferedImage offscreen = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - // Extract the underlying RGB buffer from the image. - // Pass this to the kernel so it operates directly on the RGB buffer of the image - final int[] rgb = ((DataBufferInt) offscreen.getRaster().getDataBuffer()).getData(); - final int[] imageRgb = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); - // Create a Kernel passing the size, RGB buffer and the palette. - final MandelKernel kernel = new MandelKernel(width, height, rgb); - - final Font font = new Font("Garamond", Font.BOLD, 100); - // Draw Mandelbrot image - final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - - g.drawImage(image, 0, 0, width, height, this); - g.setFont(font); - g.setColor(Color.WHITE); - final long now = System.currentTimeMillis(); - // if (now - start > 1000) { - final double framesPerSecond = (frameCount * 1000.0) / (now - start); - g.drawString(String.format("%5.2f", framesPerSecond), 20, 100); - // generationsPerSecond.setText(String.format("%5.2f", generationsPerSecondField)); - - // frames++; - // } - } - }; - - final JPanel controlPanel = new JPanel(new FlowLayout()); - frame.getContentPane().add(controlPanel, BorderLayout.SOUTH); - - final String[] choices = new String[] { - // "Java Sequential", - "Java Threads", - "GPU OpenCL" - }; - - final JComboBox modeButton = new JComboBox(choices); - - modeButton.addItemListener(new ItemListener(){ - @Override public void itemStateChanged(ItemEvent e) { - final String item = (String) modeButton.getSelectedItem(); - - // if (item.equals(choices[2])) { - // modeButton = gpuMandelBrot; - // } else - if (item.equals(choices[0])) { - kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - frameCount = 0; - start = System.currentTimeMillis(); - - // modeButton = javaMandelBrot; - } else if (item.equals(choices[1])) { - kernel.setExecutionMode(Kernel.EXECUTION_MODE.GPU); - frameCount = 0; - start = System.currentTimeMillis(); - // modeButton = javaMandelBrotMultiThread; - } - } - - }); - controlPanel.add(modeButton); - - // Set the size of JComponent which displays Mandelbrot image - viewer.setPreferredSize(new Dimension(width, height)); - - final Object doorBell = new Object(); - - // Mouse listener which reads the user clicked zoom-in point on the Mandelbrot view - viewer.addMouseListener(new MouseAdapter(){ - @Override public void mouseClicked(MouseEvent e) { - to = e.getPoint(); - synchronized (doorBell) { - doorBell.notify(); - } - } - }); - - // Swing housework to create the frame - frame.getContentPane().add(viewer, BorderLayout.CENTER); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - - final float defaultScale = 3f; - - // Set the default scale and offset, execute the kernel and force a repaint of the viewer. - kernel.setScaleAndOffset(defaultScale, -1f, 0f); - kernel.execute(range); - kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - - // Window listener to dispose Kernel resources on user exit. - frame.addWindowListener(new WindowAdapter(){ - @Override public void windowClosing(WindowEvent _windowEvent) { - kernel.dispose(); - System.exit(0); - } - }); - - // Wait until the user selects a zoom-in point on the Mandelbrot view. - while (true) { - - // Wait for the user to click somewhere - while (to == null) { - synchronized (doorBell) { - try { - doorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - } - - float x = -1f; - float y = 0f; - float scale = defaultScale; - final float tox = ((float) (to.x - (width / 2)) / width) * scale; - final float toy = ((float) (to.y - (height / 2)) / height) * scale; - - // This is how many frames we will display as we zoom in and out. - final int frames = 128; - frameCount = 0; - start = System.currentTimeMillis(); - for (int sign = -1; sign < 2; sign += 2) { - for (int i = 0; i < (frames - 4); i++) { - frameCount++; - scale = scale + ((sign * defaultScale) / frames); - x = x - (sign * (tox / frames)); - y = y - (sign * (toy / frames)); - - // Set the scale and offset, execute the kernel and force a repaint of the viewer. - kernel.setScaleAndOffset(scale, x, y); - kernel.execute(range); - final List profileInfo = kernel.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " - + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - } - } - - // Reset zoom-in point. - to = null; - - } - - } - -} diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java deleted file mode 100644 index f8effad1..00000000 --- a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/NBody.java +++ /dev/null @@ -1,381 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.examples.javaonedemo; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import javax.media.opengl.GL; -import javax.media.opengl.GL2; -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.GLException; -import javax.media.opengl.GLProfile; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.fixedfunc.GLLightingFunc; -import javax.media.opengl.glu.GLU; -import javax.swing.JButton; -import javax.swing.JComboBox; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.jogamp.opengl.util.FPSAnimator; -import com.jogamp.opengl.util.gl2.GLUT; -import com.jogamp.opengl.util.texture.Texture; -import com.jogamp.opengl.util.texture.TextureIO; - -/** - * NBody implementing demonstrating Aparapi kernels. - * - * For a description of the NBody problem. - * @see http://en.wikipedia.org/wiki/N-body_problem - * - * We use JOGL to render the bodies. - * @see http://jogamp.org/jogl/www/ - * - * @author gfrost - * - */ -public class NBody{ - - public static class NBodyKernel extends Kernel{ - protected final float delT = .005f; - - protected final float espSqr = 1.0f; - - protected final float mass = 5f; - - private final Range range; - - private final float[] xyz; // positions xy and z of bodies - - private final float[] vxyz; // velocity component of x,y and z of bodies - - /** - * Constructor initializes xyz and vxyz arrays. - * @param _bodies - */ - public NBodyKernel(Range _range) { - range = _range; - // range = Range.create(bodies); - xyz = new float[range.getGlobalSize(0) * 3]; - vxyz = new float[range.getGlobalSize(0) * 3]; - final float maxDist = 20f; - for (int body = 0; body < (range.getGlobalSize(0) * 3); body += 3) { - - final float theta = (float) (Math.random() * Math.PI * 2); - final float phi = (float) (Math.random() * Math.PI * 2); - final float radius = (float) (Math.random() * maxDist); - - // get the 3D dimensional coordinates - xyz[body + 0] = (float) (radius * Math.cos(theta) * Math.sin(phi)); - xyz[body + 1] = (float) (radius * Math.sin(theta) * Math.sin(phi)); - xyz[body + 2] = (float) (radius * Math.cos(phi)); - - // divide into two 'spheres of bodies' by adjusting x - - if ((body % 2) == 0) { - xyz[body + 0] += maxDist * 1.5; - } else { - xyz[body + 0] -= maxDist * 1.5; - } - } - setExplicit(true); - } - - /** - * Here is the kernel entrypoint. Here is where we calculate the position of each body - */ - @Override public void run() { - final int body = getGlobalId(); - final int count = getGlobalSize(0) * 3; - final int globalId = body * 3; - - float accx = 0.f; - float accy = 0.f; - float accz = 0.f; - - final float myPosx = xyz[globalId + 0]; - final float myPosy = xyz[globalId + 1]; - final float myPosz = xyz[globalId + 2]; - for (int i = 0; i < count; i += 3) { - final float dx = xyz[i + 0] - myPosx; - final float dy = xyz[i + 1] - myPosy; - final float dz = xyz[i + 2] - myPosz; - final float invDist = rsqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr); - final float s = mass * invDist * invDist * invDist; - accx = accx + (s * dx); - accy = accy + (s * dy); - accz = accz + (s * dz); - } - accx = accx * delT; - accy = accy * delT; - accz = accz * delT; - xyz[globalId + 0] = myPosx + (vxyz[globalId + 0] * delT) + (accx * .5f * delT); - xyz[globalId + 1] = myPosy + (vxyz[globalId + 1] * delT) + (accy * .5f * delT); - xyz[globalId + 2] = myPosz + (vxyz[globalId + 2] * delT) + (accz * .5f * delT); - - vxyz[globalId + 0] = vxyz[globalId + 0] + accx; - vxyz[globalId + 1] = vxyz[globalId + 1] + accy; - vxyz[globalId + 2] = vxyz[globalId + 2] + accz; - } - - /** - * Render all particles to the OpenGL context - * @param gl - */ - - protected void render(GL2 gl) { - gl.glBegin(GL2.GL_QUADS); - - for (int i = 0; i < (range.getGlobalSize(0) * 3); i += 3) { - gl.glTexCoord2f(0, 1); - gl.glVertex3f(xyz[i + 0], xyz[i + 1] + 1, xyz[i + 2]); - gl.glTexCoord2f(0, 0); - gl.glVertex3f(xyz[i + 0], xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 0); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 1); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1] + 1, xyz[i + 2]); - } - gl.glEnd(); - } - - } - - public static int width; - - public static int height; - - public static boolean running; - - public static Texture texture; - - public static void main(String _args[]) { - - final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 10000))); - kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - final JFrame frame = new JFrame("NBody"); - - final JPanel panel = new JPanel(new BorderLayout()); - final JPanel controlPanel = new JPanel(new FlowLayout()); - panel.add(controlPanel, BorderLayout.SOUTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - - // controlPanel.add(new JLabel(" Particles")); - - final String[] choices = new String[] { - // "Java Sequential", - "Java Threads", - "GPU OpenCL" - }; - - final JComboBox modeButton = new JComboBox(choices); - - modeButton.addItemListener(new ItemListener(){ - @Override public void itemStateChanged(ItemEvent e) { - final String item = (String) modeButton.getSelectedItem(); - - // if (item.equals(choices[2])) { - // modeButton = gpuMandelBrot; - // } else - if (item.equals(choices[0])) { - kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - - // modeButton = javaMandelBrot; - } else if (item.equals(choices[1])) { - // lifeKernel = lifeKernelGPU; - // modeButton = javaMandelBrotMultiThread; - kernel.setExecutionMode(Kernel.EXECUTION_MODE.GPU); - } - } - - }); - controlPanel.add(modeButton); - - controlPanel.add(new JLabel(" " + kernel.range.getGlobalSize(0) + " Particles")); - - final GLCapabilities caps = new GLCapabilities(null); - final GLProfile profile = caps.getGLProfile(); - caps.setDoubleBuffered(true); - caps.setHardwareAccelerated(true); - final GLCanvas canvas = new GLCanvas(caps); - - final GLUT glut = new GLUT(); - - final Dimension dimension = new Dimension(Integer.getInteger("width", 1024 + 256), - Integer.getInteger("height", 768 - 64 - 32)); - canvas.setPreferredSize(dimension); - - canvas.addGLEventListener(new GLEventListener(){ - private double ratio; - - private final float xeye = 0f; - - private final float yeye = 0f; - - private final float zeye = 100f; - - private final float xat = 0f; - - private final float yat = 0f; - - private final float zat = 0f; - - public final float zoomFactor = 1.0f; - - private int frames; - - private long last = System.currentTimeMillis(); - - @Override public void dispose(GLAutoDrawable drawable) { - - } - - @Override public void display(GLAutoDrawable drawable) { - - final GL2 gl = drawable.getGL().getGL2(); - texture.enable(gl); - texture.bind(gl); - - gl.glLoadIdentity(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - gl.glColor3f(1f, 1f, 1f); - - final GLU glu = new GLU(); - glu.gluPerspective(45f, ratio, 0f, 1000f); - - glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f); - if (running) { - kernel.execute(kernel.range); - if (kernel.isExplicit()) { - kernel.get(kernel.xyz); - } - final List profileInfo = kernel.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - } - kernel.render(gl); - - final long now = System.currentTimeMillis(); - final long time = now - last; - frames++; - - if (running) { - final float framesPerSecond = (frames * 1000.0f) / time; - - gl.glColor3f(.5f, .5f, .5f); - gl.glRasterPos2i(-40, 38); - glut.glutBitmapString(8, String.format("%5.2f fps", framesPerSecond)); - gl.glFlush(); - } - frames = 0; - last = now; - - } - - @Override public void init(GLAutoDrawable drawable) { - final GL2 gl = drawable.getGL().getGL2(); - - gl.glShadeModel(GLLightingFunc.GL_SMOOTH); - gl.glEnable(GL.GL_BLEND); - gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE); - try { - final InputStream textureStream = NBody.class.getResourceAsStream("particle.jpg"); - texture = TextureIO.newTexture(textureStream, false, null); - } catch (final IOException e) { - e.printStackTrace(); - } catch (final GLException e) { - e.printStackTrace(); - } - - } - - @Override public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) { - width = _width; - height = _height; - - final GL2 gl = drawable.getGL().getGL2(); - gl.glViewport(0, 0, width, height); - - ratio = (double) width / (double) height; - - } - - }); - - panel.add(canvas, BorderLayout.CENTER); - frame.getContentPane().add(panel, BorderLayout.CENTER); - final FPSAnimator animator = new FPSAnimator(canvas, 100); - - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - frame.pack(); - frame.setVisible(true); - - animator.start(); - - } - -} diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/duke.jpg b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/duke.jpg deleted file mode 100644 index 2729fd2f..00000000 Binary files a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/duke.jpg and /dev/null differ diff --git a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/particle.jpg b/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/particle.jpg deleted file mode 100644 index 70e28ac5..00000000 Binary files a/examples/javaonedemo/src/com/amd/aparapi/examples/javaonedemo/particle.jpg and /dev/null differ diff --git a/examples/movie/.classpath b/examples/movie/.classpath deleted file mode 100644 index a091f335..00000000 --- a/examples/movie/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/examples/movie/.project b/examples/movie/.project deleted file mode 100644 index 6be55d8c..00000000 --- a/examples/movie/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - movie - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/movie/build.xml b/examples/movie/build.xml deleted file mode 100644 index b873dcc0..00000000 --- a/examples/movie/build.xml +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/movie/movie.bat b/examples/movie/movie.bat deleted file mode 100644 index f1a0c333..00000000 --- a/examples/movie/movie.bat +++ /dev/null @@ -1,15 +0,0 @@ -SETLOCAL -if /I %PROCESSOR_ARCHITECTURE%==x86 goto win32 -echo "win64!" -set PATH=%PATH%;ffmpeg\ffmpeg-git-9c2651a-win64-shared\bin -set PATH=%PATH%;jjmpeg\jjmpeg-0.0\native\mswin-amd64 -goto win64 -:win32 -echo "win32!" -set PATH=%PATH%;ffmpeg\ffmpeg-git-9c2651a-win32-shared\bin -set PATH=%PATH%;jjmpeg\jjmpeg-0.0\native\mswin-i386 -:win64 -set PATH=%PATH%;..\..\com.amd.aparapi.jni\dist -java -classpath jjmpeg\jjmpeg-0.0\dist\jjmpeg.jar;..\..\com.amd.aparapi\dist\aparapi.jar;movie.jar; com.amd.aparapi.examples.movie.%1 %2 - -ENDLOCAL diff --git a/examples/movie/src/com/amd/aparapi/examples/movie/AparapiSolution.java b/examples/movie/src/com/amd/aparapi/examples/movie/AparapiSolution.java deleted file mode 100644 index d2ab13b7..00000000 --- a/examples/movie/src/com/amd/aparapi/examples/movie/AparapiSolution.java +++ /dev/null @@ -1,130 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.examples.movie; - -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferByte; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -public class AparapiSolution{ - - public static class AparapiConvolution extends Kernel{ - - private byte[] inputData; - - private byte[] outputData; - - private int width; - - private int height; - - private Range range; - - float[] convMatrix3x3; - - public AparapiConvolution(BufferedImage _imageIn, BufferedImage _imageOut) { - inputData = ((DataBufferByte) _imageIn.getRaster().getDataBuffer()).getData(); - outputData = ((DataBufferByte) _imageOut.getRaster().getDataBuffer()).getData(); - width = _imageIn.getWidth(); - height = _imageIn.getHeight(); - range = Range.create2D(width * 3, height); - setExplicit(true); - - } - - public void processPixel(int x, int y, int w, int h) { - float accum = 0; - int count = 0; - for (int dx = -3; dx < 6; dx += 3) { - for (int dy = -1; dy < 2; dy += 1) { - int rgb = 0xff & inputData[((y + dy) * w) + (x + dx)]; - accum += rgb * convMatrix3x3[count++]; - } - } - outputData[y * w + x] = (byte) Math.max(0, Math.min((int) accum, 255)); - } - - public void run() { - int x = getGlobalId(0); - int y = getGlobalId(1); - int w = getGlobalSize(0); - int h = getGlobalSize(1); - if (x > 3 && x < (w - 3) && y > 1 && y < (h - 1)) { - processPixel(x, y, w, h); - } else { - outputData[y * w + x] = inputData[(y * w) + x]; - } - } - - public void apply(float[] _convMatrix3x3) { - convMatrix3x3 = _convMatrix3x3; - put(convMatrix3x3).put(inputData).execute(range).get(outputData); - } - - } - - public static void main(final String[] _args) { - String fileName = _args.length == 1 ? _args[0] : "Leo720p.wmv"; - - float[] convMatrix3x3 = new float[] { - 0f, - -10f, - 0f, - -10f, - 41f, - -10f, - 0f, - -10f, - 0f - }; - new JJMPEGPlayer("Aparapi - Solution", fileName, convMatrix3x3){ - AparapiConvolution kernel = null; - - @Override protected void processFrame(Graphics2D gc, float[] _convMatrix3x3, BufferedImage in, BufferedImage out) { - if (kernel == null) { - kernel = new AparapiConvolution(in, out); - } - kernel.apply(_convMatrix3x3); - } - }; - - } -} diff --git a/examples/movie/src/com/amd/aparapi/examples/movie/ConvMatrix3x3Editor.java b/examples/movie/src/com/amd/aparapi/examples/movie/ConvMatrix3x3Editor.java deleted file mode 100644 index 6e537259..00000000 --- a/examples/movie/src/com/amd/aparapi/examples/movie/ConvMatrix3x3Editor.java +++ /dev/null @@ -1,151 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.examples.movie; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Arrays; - -import javax.swing.BoxLayout; -import javax.swing.JComboBox; -import javax.swing.JPanel; -import javax.swing.JSpinner; -import javax.swing.SpinnerModel; -import javax.swing.SpinnerNumberModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -public class ConvMatrix3x3Editor{ - Component component; - - float[] default3x3; - - float[] none3x3 = new float[] { - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0 - }; - - float[] blur3x3 = new float[] { - .1f, - .1f, - .1f, - .1f, - .1f, - .1f, - .1f, - .1f, - .1f - }; - - JSpinner[] spinners = new JSpinner[9]; - - protected void updated(float[] _convMatrix3x3) { - - }; - - void set(float[] _to, float[] _from) { - for (int i = 0; i < 9; i++) { - _to[i] = _from[i]; - spinners[i].setValue((Double) (double) _to[i]); - - } - updated(_to); - } - - ConvMatrix3x3Editor(final float[] _convMatrix3x3) { - default3x3 = Arrays.copyOf(_convMatrix3x3, _convMatrix3x3.length); - JPanel leftPanel = new JPanel(); - JPanel controlPanel = new JPanel(); - BoxLayout layout = new BoxLayout(controlPanel, BoxLayout.Y_AXIS); - controlPanel.setLayout(layout); - component = leftPanel; - JPanel grid3x3Panel = new JPanel(); - controlPanel.add(grid3x3Panel); - grid3x3Panel.setLayout(new GridLayout(3, 3)); - for (int i = 0; i < 9; i++) { - final int index = i; - SpinnerModel model = new SpinnerNumberModel(_convMatrix3x3[index], -50f, 50f, 1f); - JSpinner spinner = new JSpinner(model); - spinners[i] = spinner; - spinner.addChangeListener(new ChangeListener(){ - public void stateChanged(ChangeEvent ce) { - JSpinner source = (JSpinner) ce.getSource(); - double value = ((Double) source.getValue()); - _convMatrix3x3[index] = (float) value; - updated(_convMatrix3x3); - } - }); - grid3x3Panel.add(spinner); - } - String[] options = new String[] { - "DEFAULT", - "NONE", - "BLUR" - }; - JComboBox combo = new JComboBox(options); - combo.addActionListener(new ActionListener(){ - - @Override public void actionPerformed(ActionEvent e) { - JComboBox cb = (JComboBox) e.getSource(); - String value = (String) cb.getSelectedItem(); - if (value.equals("DEFAULT")) { - set(_convMatrix3x3, default3x3); - } else if (value.equals("NONE")) { - set(_convMatrix3x3, none3x3); - } else if (value.equals("BLUR")) { - set(_convMatrix3x3, blur3x3); - } - } - - }); - controlPanel.add(combo); - - leftPanel.add(controlPanel, BorderLayout.NORTH); - } -} diff --git a/examples/movie/src/com/amd/aparapi/examples/movie/JJMPEGPlayer.java b/examples/movie/src/com/amd/aparapi/examples/movie/JJMPEGPlayer.java deleted file mode 100644 index 0957eef0..00000000 --- a/examples/movie/src/com/amd/aparapi/examples/movie/JJMPEGPlayer.java +++ /dev/null @@ -1,147 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.examples.movie; - -import java.awt.BorderLayout; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.util.logging.Level; -import java.util.logging.Logger; - -import javax.swing.ImageIcon; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.SwingUtilities; - -import au.notzed.jjmpeg.io.JJMediaReader; -import au.notzed.jjmpeg.io.JJMediaReader.JJReaderVideo; - -/** - * Code based on Demo of JJVideoScanner class from jjmpeg - * - * See http://code.google.com/p/jjmpeg/ - * - * @author notzed - * @author gfrost - */ -public abstract class JJMPEGPlayer{ - - public JJMPEGPlayer(final String _title, final String _fileName, final float[] _convMatrix3x3) { - SwingUtilities.invokeLater(new Runnable(){ - final Object doorBell = new Object(); - - public void run() { - - JFrame frame = new JFrame(_title); - frame.getContentPane().setLayout(new BorderLayout()); - final JLabel label = new JLabel(){ - @Override public void paint(Graphics GC) { - super.paint(GC); - synchronized (doorBell) { - doorBell.notify(); - } - } - }; - frame.getContentPane().add(label, BorderLayout.CENTER); - - ConvMatrix3x3Editor editor = new ConvMatrix3x3Editor(_convMatrix3x3){ - @Override protected void updated(float[] _convMatrix3x3) { - - } - }; - frame.getContentPane().add(editor.component, BorderLayout.WEST); - - try { - final JJMediaReader reader = new JJMediaReader(_fileName); - final JJReaderVideo vs = reader.openFirstVideoStream(); - final BufferedImage in = vs.createImage(); - final BufferedImage out = vs.createImage(); - - label.setIcon(new ImageIcon(out)); - - new Thread(new Runnable(){ - public void run() { - int frames = 0; - long start = System.currentTimeMillis() - 1; - try { - while (true) { - JJMediaReader.JJReaderStream rs = reader.readFrame(); - if (rs != null) { - vs.getOutputFrame(in); - Graphics2D gc = in.createGraphics(); - frames++; - long fps = (frames * 1000) / (System.currentTimeMillis() - start); - gc.drawString("" + fps, 20, 20); - - processFrame(gc, _convMatrix3x3, in, out); - - label.repaint(); - synchronized (doorBell) { - try { - doorBell.wait(); - } catch (InterruptedException ie) { - ie.getStackTrace(); - } - } - } else { - reader.dispose(); - System.exit(1); - } - Thread.sleep(1); - } - } catch (Exception ex) { - ex.printStackTrace(); - Logger.getLogger(JJMPEGPlayer.class.getName()).log(Level.SEVERE, null, ex); - } - } - }).start(); - frame.pack(); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setVisible(true); - } catch (Exception ex) { - Logger.getLogger(JJMPEGPlayer.class.getName()).log(Level.SEVERE, null, ex); - } - - } - }); - } - - protected abstract void processFrame(Graphics2D gc, float[] _convMatrix, BufferedImage in, BufferedImage _out); - -} diff --git a/examples/movie/src/com/amd/aparapi/examples/movie/PureJavaSolution.java b/examples/movie/src/com/amd/aparapi/examples/movie/PureJavaSolution.java deleted file mode 100644 index 34e30bc0..00000000 --- a/examples/movie/src/com/amd/aparapi/examples/movie/PureJavaSolution.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.examples.movie; - -import java.awt.Graphics2D; -import java.awt.image.ConvolveOp; - -import java.awt.image.BufferedImage; - -public class PureJavaSolution{ - - public static void main(final String[] _args) { - String fileName = _args.length == 1 ? _args[0] : "Leo720p.wmv"; - - float[] convMatrix3x3 = new float[] { - 0f, - -10f, - 0f, - -10f, - 41f, - -10f, - 0f, - -10f, - 0f - }; - - new JJMPEGPlayer("lab_6.alternate", fileName, convMatrix3x3){ - - @Override protected void processFrame(Graphics2D _gc, float[] _convMatrix3x3, BufferedImage _in, BufferedImage _out) { - java.awt.image.Kernel conv = new java.awt.image.Kernel(3, 3, _convMatrix3x3); - ConvolveOp convOp = new ConvolveOp(conv, ConvolveOp.EDGE_NO_OP, null); - convOp.filter(_in, _out); - } - }; - - } -} diff --git a/examples/movie/src/com/amd/aparapi/examples/movie/ReferenceSolution.java b/examples/movie/src/com/amd/aparapi/examples/movie/ReferenceSolution.java deleted file mode 100644 index 0815fbf2..00000000 --- a/examples/movie/src/com/amd/aparapi/examples/movie/ReferenceSolution.java +++ /dev/null @@ -1,136 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.examples.movie; - -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferByte; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -public class ReferenceSolution{ - - public static class Convolution extends Kernel{ - - private byte[] inputData; - - private byte[] outputData; - - private int width; - - private int height; - - private Range range; - - float[] convMatrix3x3; - - public Convolution(BufferedImage _imageIn, BufferedImage _imageOut) { - inputData = ((DataBufferByte) _imageIn.getRaster().getDataBuffer()).getData(); - outputData = ((DataBufferByte) _imageOut.getRaster().getDataBuffer()).getData(); - width = _imageIn.getWidth(); - height = _imageIn.getHeight(); - range = Range.create2D(width * 3, height); - setExplicit(true); - - } - - public void processPixel(int x, int y, int w, int h) { - float accum = 0; - int count = 0; - for (int dx = -3; dx < 6; dx += 3) { - for (int dy = -1; dy < 2; dy += 1) { - int rgb = 0xff & inputData[((y + dy) * w) + (x + dx)]; - accum += rgb * convMatrix3x3[count++]; - } - } - outputData[y * w + x] = (byte) Math.max(0, Math.min((int) accum, 255)); - } - - public void run() { - int x = getGlobalId(0); - int y = getGlobalId(1); - int w = getGlobalSize(0); - int h = getGlobalSize(1); - if (x > 3 && x < (w - 3) && y > 1 && y < (h - 1)) { - processPixel(x, y, w, h); - } else { - outputData[y * w + x] = inputData[(y * w) + x]; - } - } - - public void apply(float[] _convMatrix3x3) { - convMatrix3x3 = _convMatrix3x3; - for (int x = 0; x < width * 3; x++) { - for (int y = 0; y < height; y++) { - if (x > 3 && x < (width * 3 - 3) && y > 1 && y < (height - 1)) { - processPixel(x, y, width * 3, height); - } - } - } - } - - } - - public static void main(final String[] _args) { - String fileName = _args.length == 1 ? _args[0] : "Leo720p.wmv"; - - float[] convMatrix3x3 = new float[] { - 0f, - -10f, - 0f, - -10f, - 41f, - -10f, - 0f, - -10f, - 0f - }; - new JJMPEGPlayer("Aparapi - Solution", fileName, convMatrix3x3){ - Convolution kernel = null; - - @Override protected void processFrame(Graphics2D gc, float[] _convMatrix3x3, BufferedImage in, BufferedImage out) { - if (kernel == null) { - kernel = new Convolution(in, out); - } - kernel.apply(_convMatrix3x3); - } - }; - - } -} diff --git a/examples/nbody/.classpath b/examples/nbody/.classpath deleted file mode 100644 index a9d65058..00000000 --- a/examples/nbody/.classpath +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/examples/nbody/.project b/examples/nbody/.project deleted file mode 100644 index f3cf594d..00000000 --- a/examples/nbody/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - nbody - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/nbody/agent.sh b/examples/nbody/agent.sh deleted file mode 100644 index 731145f5..00000000 --- a/examples/nbody/agent.sh +++ /dev/null @@ -1,10 +0,0 @@ -java \ - -agentpath:../../com.amd.aparapi.jni/dist/libaparapi_x86_64.so\ - -Dcom.amd.aparapi.useAgent=true\ - -Djava.library.path=../third-party/jogamp \ - -Dcom.amd.aparapi.executionMode=$1 \ - -Dbodies=$2 \ - -Dheight=600 \ - -Dwidth=600 \ - -classpath ../third-party/jogamp/jogl-all.jar:../third-party/jogamp/gluegen-rt.jar:../../com.amd.aparapi/dist/aparapi.jar:nbody.jar \ - com.amd.aparapi.examples.nbody.Main diff --git a/examples/nbody/build.xml b/examples/nbody/build.xml deleted file mode 100644 index 5e2d1323..00000000 --- a/examples/nbody/build.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/nbody/local.bat b/examples/nbody/local.bat deleted file mode 100644 index c89fd6dd..00000000 --- a/examples/nbody/local.bat +++ /dev/null @@ -1,15 +0,0 @@ -@echo off - -java ^ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist;..\third-party\jogamp ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dcom.amd.aparapi.enableVerboseJNI=false ^ - -Dcom.amd.aparapi.enableProfiling=true ^ - -Dbodies=%2 ^ - -Dheight=600 ^ - -Dwidth=600 ^ - -classpath ..\third-party\jogamp\gluegen-rt.jar;..\third-party\jogamp\jogl.all.jar;..\..\com.amd.aparapi\dist\aparapi.jar;nbody.jar ^ - com.amd.aparapi.examples.nbody.Local - - diff --git a/examples/nbody/local.sh b/examples/nbody/local.sh deleted file mode 100644 index dc8b1e61..00000000 --- a/examples/nbody/local.sh +++ /dev/null @@ -1,10 +0,0 @@ - -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist:../third-party/jogamp \ - -Dcom.amd.aparapi.executionMode=$1 \ - -Dbodies=$2 \ - -Dheight=600 \ - -Dwidth=600 \ - -classpath ../third-party/jogamp/jogl-all.jar:../third-party/jogamp/gluegen-rt.jar:../../com.amd.aparapi/dist/aparapi.jar:nbody.jar \ - com.amd.aparapi.examples.nbody.Local - diff --git a/examples/nbody/nbody-agent.bat b/examples/nbody/nbody-agent.bat deleted file mode 100644 index 2dfdc11e..00000000 --- a/examples/nbody/nbody-agent.bat +++ /dev/null @@ -1,16 +0,0 @@ -@echo off - -java ^ - -agentpath:../../com.amd.aparapi.jni/dist/aparapi_x86_64.dll ^ - -Dcom.amd.aparapi.useAgent=true ^ - -Djava.library.path=..\third-party\jogamp ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dbodies=%2 ^ - -Dheight=600 ^ - -Dwidth=600 ^ - -classpath ..\third-party\jogamp\gluegen-rt.jar;..\third-party\jogamp\jogl-all.jar;..\..\com.amd.aparapi\dist\aparapi.jar;nbody.jar ^ - com.amd.aparapi.examples.nbody.Main - - diff --git a/examples/nbody/nbody.bat b/examples/nbody/nbody.bat deleted file mode 100644 index b6e01554..00000000 --- a/examples/nbody/nbody.bat +++ /dev/null @@ -1,15 +0,0 @@ -@echo off - -java ^ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist;..\third-party\jogamp ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dcom.amd.aparapi.logLevel=SEVERE ^ - -Dbodies=%2 ^ - -Dheight=600 ^ - -Dwidth=600 ^ - -classpath ..\third-party\jogamp\gluegen-rt.jar;..\third-party\jogamp\jogl-all.jar;..\..\com.amd.aparapi\dist\aparapi.jar;nbody.jar ^ - com.amd.aparapi.examples.nbody.Main - - diff --git a/examples/nbody/nbody.sh b/examples/nbody/nbody.sh deleted file mode 100644 index 75289f18..00000000 --- a/examples/nbody/nbody.sh +++ /dev/null @@ -1,10 +0,0 @@ - -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist:../third-party/jogamp \ - -Dcom.amd.aparapi.executionMode=$1 \ - -Dbodies=$2 \ - -Dheight=600 \ - -Dwidth=600 \ - -classpath ../third-party/jogamp/jogl-all.jar:../third-party/jogamp/gluegen-rt.jar:../../com.amd.aparapi/dist/aparapi.jar:nbody.jar \ - com.amd.aparapi.examples.nbody.Main - diff --git a/examples/nbody/seq.bat b/examples/nbody/seq.bat deleted file mode 100644 index a2b48157..00000000 --- a/examples/nbody/seq.bat +++ /dev/null @@ -1,11 +0,0 @@ -@echo off - -java ^ - -Djava.library.path=..\third-party\jogamp ^ - -Dbodies=%1 ^ - -Dheight=600 ^ - -Dwidth=600 ^ - -classpath ..\third-party\jogamp\gluegen-rt.jar;..\third-party\jogamp\jogl-all.jar;nbody.jar ^ - com.amd.aparapi.examples.nbody.Seq - - diff --git a/examples/nbody/seq.sh b/examples/nbody/seq.sh deleted file mode 100644 index d8ee5153..00000000 --- a/examples/nbody/seq.sh +++ /dev/null @@ -1,10 +0,0 @@ - -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist:../third-party/jogamp \ - -Dcom.amd.aparapi.executionMode=$1 \ - -Dbodies=$2 \ - -Dheight=600 \ - -Dwidth=600 \ - -classpath ../third-party/jogamp/jogl-all.jar:../third-party/jogamp/gluegen-rt.jar:../../com.amd.aparapi/dist/aparapi.jar:nbody.jar \ - com.amd.aparapi.examples.nbody.Seq - diff --git a/examples/nbody/src/com/amd/aparapi/examples/nbody/Local.java b/examples/nbody/src/com/amd/aparapi/examples/nbody/Local.java deleted file mode 100644 index e0f4dbc4..00000000 --- a/examples/nbody/src/com/amd/aparapi/examples/nbody/Local.java +++ /dev/null @@ -1,365 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.examples.nbody; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import javax.media.opengl.GL; -import javax.media.opengl.GL2; -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.GLException; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.fixedfunc.GLLightingFunc; -import javax.media.opengl.glu.GLU; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.jogamp.opengl.util.FPSAnimator; -import com.jogamp.opengl.util.texture.Texture; -import com.jogamp.opengl.util.texture.TextureIO; - -/** - * An NBody clone which uses local memory to cache NBody positions for execution. - * - * http://www.browndeertechnology.com/docs/BDT_OpenCL_Tutorial_NBody-rev3.html - * - * @see com.amd.aparapi.examples.nbody.Main - * - * @author gfrost - * - */ -public class Local{ - - public static class NBodyKernel extends Kernel{ - protected final float delT = .005f; - - protected final float espSqr = 1.0f; - - protected final float mass = 5f; - - private final Range range; - - private final float[] xyz; // positions xy and z of bodies - - private final float[] vxyz; // velocity component of x,y and z of bodies - - @Local private final float[] localStuff; // local memory - - /** - * Constructor initializes xyz and vxyz arrays. - * @param _bodies - */ - public NBodyKernel(Range _range) { - range = _range; - localStuff = new float[range.getLocalSize(0) * 3]; - - xyz = new float[range.getGlobalSize(0) * 3]; - vxyz = new float[range.getGlobalSize(0) * 3]; - final float maxDist = 20f; - for (int body = 0; body < (range.getGlobalSize(0) * 3); body += 3) { - final float theta = (float) (Math.random() * Math.PI * 2); - final float phi = (float) (Math.random() * Math.PI * 2); - final float radius = (float) (Math.random() * maxDist); - - // get the 3D dimensional coordinates - xyz[body + 0] = (float) (radius * Math.cos(theta) * Math.sin(phi)); - xyz[body + 1] = (float) (radius * Math.sin(theta) * Math.sin(phi)); - xyz[body + 2] = (float) (radius * Math.cos(phi)); - - // divide into two 'spheres of bodies' by adjusting x - if ((body % 2) == 0) { - xyz[body + 0] += maxDist * 1.5; - } else { - xyz[body + 0] -= maxDist * 1.5; - } - } - setExplicit(true); - } - - /** - * Here is the kernel entrypoint. Here is where we calculate the position of each body - */ - @Override public void run() { - - final int globalId = getGlobalId(0) * 3; - - float accx = 0.f; - float accy = 0.f; - float accz = 0.f; - final float myPosx = xyz[globalId + 0]; - final float myPosy = xyz[globalId + 1]; - final float myPosz = xyz[globalId + 2]; - - for (int tile = 0; tile < (getGlobalSize(0) / getLocalSize(0)); tile++) { - // load one tile into local memory - final int gidx = ((tile * getLocalSize(0)) + getLocalId()) * 3; - final int lidx = getLocalId(0) * 3; - localStuff[lidx + 0] = xyz[gidx + 0]; - localStuff[lidx + 1] = xyz[gidx + 1]; - localStuff[lidx + 2] = xyz[gidx + 2]; - // Synchronize to make sure data is available for processing - localBarrier(); - - for (int i = 0; i < (getLocalSize() * 3); i += 3) { - final float dx = localStuff[i + 0] - myPosx; - final float dy = localStuff[i + 1] - myPosy; - final float dz = localStuff[i + 2] - myPosz; - final float invDist = rsqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr); - final float s = mass * invDist * invDist * invDist; - accx = accx + (s * dx); - accy = accy + (s * dy); - accz = accz + (s * dz); - } - localBarrier(); - } - accx = accx * delT; - accy = accy * delT; - accz = accz * delT; - xyz[globalId + 0] = myPosx + (vxyz[globalId + 0] * delT) + (accx * .5f * delT); - xyz[globalId + 1] = myPosy + (vxyz[globalId + 1] * delT) + (accy * .5f * delT); - xyz[globalId + 2] = myPosz + (vxyz[globalId + 2] * delT) + (accz * .5f * delT); - - vxyz[globalId + 0] = vxyz[globalId + 0] + accx; - vxyz[globalId + 1] = vxyz[globalId + 1] + accy; - vxyz[globalId + 2] = vxyz[globalId + 2] + accz; - } - - /** - * Render all particles to the OpenGL context - * @param gl - */ - - protected void render(GL2 gl) { - gl.glBegin(GL2.GL_QUADS); - - for (int i = 0; i < (range.getGlobalSize(0) * 3); i += 3) { - gl.glTexCoord2f(0, 1); - gl.glVertex3f(xyz[i + 0], xyz[i + 1] + 1, xyz[i + 2]); - gl.glTexCoord2f(0, 0); - gl.glVertex3f(xyz[i + 0], xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 0); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 1); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1] + 1, xyz[i + 2]); - } - gl.glEnd(); - } - - } - - public static int width; - - public static int height; - - public static boolean running; - - public static void main(String _args[]) { - - final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 8192), 256)); - - final JFrame frame = new JFrame("NBody"); - - final JPanel panel = new JPanel(new BorderLayout()); - final JPanel controlPanel = new JPanel(new FlowLayout()); - panel.add(controlPanel, BorderLayout.SOUTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - controlPanel.add(new JLabel(kernel.getExecutionMode().toString())); - - controlPanel.add(new JLabel(" Particles")); - controlPanel.add(new JTextField("" + kernel.range.getGlobalSize(0), 5)); - - controlPanel.add(new JLabel("FPS")); - final JTextField framesPerSecondTextField = new JTextField("0", 5); - - controlPanel.add(framesPerSecondTextField); - controlPanel.add(new JLabel("Score(")); - final JLabel miniLabel = new JLabel("calcs


      µsec"); - - controlPanel.add(miniLabel); - controlPanel.add(new JLabel(")")); - - final JTextField positionUpdatesPerMicroSecondTextField = new JTextField("0", 5); - - controlPanel.add(positionUpdatesPerMicroSecondTextField); - final GLCapabilities caps = new GLCapabilities(null); - caps.setDoubleBuffered(true); - caps.setHardwareAccelerated(true); - final GLCanvas canvas = new GLCanvas(caps); - final Dimension dimension = new Dimension(Integer.getInteger("width", 742), Integer.getInteger("height", 742)); - canvas.setPreferredSize(dimension); - - canvas.addGLEventListener(new GLEventListener(){ - private double ratio; - - private final float xeye = 0f; - - private final float yeye = 0f; - - private final float zeye = 100f; - - private final float xat = 0f; - - private final float yat = 0f; - - private final float zat = 0f; - - public final float zoomFactor = 1.0f; - - private int frames; - - private long last = System.currentTimeMillis(); - - @Override public void dispose(GLAutoDrawable drawable) { - - } - - @Override public void display(GLAutoDrawable drawable) { - - final GL2 gl = drawable.getGL().getGL2(); - - gl.glLoadIdentity(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - gl.glColor3f(1f, 1f, 1f); - - final GLU glu = new GLU(); - glu.gluPerspective(45f, ratio, 0f, 1000f); - - glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f); - if (running) { - kernel.execute(kernel.range); - if (kernel.isExplicit()) { - kernel.get(kernel.xyz); - } - final List profileInfo = kernel.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - } - kernel.render(gl); - - final long now = System.currentTimeMillis(); - final long time = now - last; - frames++; - - if (time > 1000) { // We update the frames/sec every second - if (running) { - final float framesPerSecond = (frames * 1000.0f) / time; - final int updatesPerMicroSecond = (int) ((framesPerSecond * kernel.range.getGlobalSize(0) * kernel.range - .getGlobalSize(0)) / 1000000); - framesPerSecondTextField.setText(String.format("%5.2f", framesPerSecond)); - positionUpdatesPerMicroSecondTextField.setText(String.format("%4d", updatesPerMicroSecond)); - } - frames = 0; - last = now; - } - gl.glFlush(); - - } - - @Override public void init(GLAutoDrawable drawable) { - final GL2 gl = drawable.getGL().getGL2(); - - gl.glShadeModel(GLLightingFunc.GL_SMOOTH); - gl.glEnable(GL.GL_BLEND); - gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE); - try { - final InputStream textureStream = Local.class.getResourceAsStream("particle.jpg"); - final Texture texture = TextureIO.newTexture(textureStream, false, null); - texture.enable(gl); - } catch (final IOException e) { - e.printStackTrace(); - } catch (final GLException e) { - e.printStackTrace(); - } - - } - - @Override public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) { - width = _width; - height = _height; - - final GL2 gl = drawable.getGL().getGL2(); - gl.glViewport(0, 0, width, height); - - ratio = (double) width / (double) height; - - } - - }); - - panel.add(canvas, BorderLayout.CENTER); - frame.getContentPane().add(panel, BorderLayout.CENTER); - - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - frame.pack(); - frame.setVisible(true); - - final FPSAnimator animator = new FPSAnimator(canvas, 100); - animator.start(); - - } - -} diff --git a/examples/nbody/src/com/amd/aparapi/examples/nbody/Main.java b/examples/nbody/src/com/amd/aparapi/examples/nbody/Main.java deleted file mode 100644 index 916f2e1e..00000000 --- a/examples/nbody/src/com/amd/aparapi/examples/nbody/Main.java +++ /dev/null @@ -1,370 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - - */ -package com.amd.aparapi.examples.nbody; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import javax.media.opengl.GL; -import javax.media.opengl.GL2; -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.GLException; -import javax.media.opengl.GLProfile; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.fixedfunc.GLLightingFunc; -import javax.media.opengl.glu.GLU; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.jogamp.opengl.util.FPSAnimator; -import com.jogamp.opengl.util.texture.Texture; -import com.jogamp.opengl.util.texture.TextureData; -import com.jogamp.opengl.util.texture.TextureIO; - -/** - * NBody implementing demonstrating Aparapi kernels. - * - * For a description of the NBody problem. - * - * @see http://en.wikipedia.org/wiki/N-body_problem - * - * We use JOGL to render the bodies. - * @see http://jogamp.org/jogl/www/ - * - * @author gfrost - * - */ -public class Main{ - - public static class NBodyKernel extends Kernel{ - protected final float delT = .005f; - - protected final float espSqr = 1.0f; - - protected final float mass = 5f; - - private final Range range; - - private final float[] xyz; // positions xy and z of bodies - - private final float[] vxyz; // velocity component of x,y and z of bodies - - /** - * Constructor initializes xyz and vxyz arrays. - * - * @param _bodies - */ - public NBodyKernel(Range _range) { - range = _range; - // range = Range.create(bodies); - xyz = new float[range.getGlobalSize(0) * 3]; - vxyz = new float[range.getGlobalSize(0) * 3]; - final float maxDist = 20f; - for (int body = 0; body < (range.getGlobalSize(0) * 3); body += 3) { - - final float theta = (float) (Math.random() * Math.PI * 2); - final float phi = (float) (Math.random() * Math.PI * 2); - final float radius = (float) (Math.random() * maxDist); - - // get the 3D dimensional coordinates - xyz[body + 0] = (float) (radius * Math.cos(theta) * Math.sin(phi)); - xyz[body + 1] = (float) (radius * Math.sin(theta) * Math.sin(phi)); - xyz[body + 2] = (float) (radius * Math.cos(phi)); - - // divide into two 'spheres of bodies' by adjusting x - - if ((body % 2) == 0) { - xyz[body + 0] += maxDist * 1.5; - } else { - xyz[body + 0] -= maxDist * 1.5; - } - } - setExplicit(true); - } - - /** - * Here is the kernel entrypoint. Here is where we calculate the position of each body - */ - @Override public void run() { - final int body = getGlobalId(); - final int count = getGlobalSize(0) * 3; - final int globalId = body * 3; - - float accx = 0.f; - float accy = 0.f; - float accz = 0.f; - - final float myPosx = xyz[globalId + 0]; - final float myPosy = xyz[globalId + 1]; - final float myPosz = xyz[globalId + 2]; - for (int i = 0; i < count; i += 3) { - final float dx = xyz[i + 0] - myPosx; - final float dy = xyz[i + 1] - myPosy; - final float dz = xyz[i + 2] - myPosz; - final float invDist = rsqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr); - final float s = mass * invDist * invDist * invDist; - accx = accx + (s * dx); - accy = accy + (s * dy); - accz = accz + (s * dz); - } - accx = accx * delT; - accy = accy * delT; - accz = accz * delT; - xyz[globalId + 0] = myPosx + (vxyz[globalId + 0] * delT) + (accx * .5f * delT); - xyz[globalId + 1] = myPosy + (vxyz[globalId + 1] * delT) + (accy * .5f * delT); - xyz[globalId + 2] = myPosz + (vxyz[globalId + 2] * delT) + (accz * .5f * delT); - - vxyz[globalId + 0] = vxyz[globalId + 0] + accx; - vxyz[globalId + 1] = vxyz[globalId + 1] + accy; - vxyz[globalId + 2] = vxyz[globalId + 2] + accz; - } - - /** - * Render all particles to the OpenGL context - * - * @param gl - */ - - protected void render(GL2 gl) { - gl.glBegin(GL2.GL_QUADS); - - for (int i = 0; i < (range.getGlobalSize(0) * 3); i += 3) { - gl.glTexCoord2f(0, 1); - gl.glVertex3f(xyz[i + 0], xyz[i + 1] + 1, xyz[i + 2]); - gl.glTexCoord2f(0, 0); - gl.glVertex3f(xyz[i + 0], xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 0); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 1); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1] + 1, xyz[i + 2]); - } - gl.glEnd(); - } - - } - - public static int width; - - public static int height; - - public static boolean running; - - static Texture texture; - - public static void main(String _args[]) { - - //System.load("/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/libawt.dylib"); - //System.load("/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/libjawt.dylib"); - final NBodyKernel kernel = new NBodyKernel(Range.create(Integer.getInteger("bodies", 8192))); - - final JFrame frame = new JFrame("NBody"); - - final JPanel panel = new JPanel(new BorderLayout()); - final JPanel controlPanel = new JPanel(new FlowLayout()); - panel.add(controlPanel, BorderLayout.NORTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - controlPanel.add(new JLabel(kernel.getExecutionMode().toString())); - - controlPanel.add(new JLabel(" Particles")); - controlPanel.add(new JTextField("" + kernel.range.getGlobalSize(0), 5)); - - controlPanel.add(new JLabel("FPS")); - final JTextField framesPerSecondTextField = new JTextField("0", 5); - - controlPanel.add(framesPerSecondTextField); - controlPanel.add(new JLabel("Score(")); - final JLabel miniLabel = new JLabel("calcs
      µsec"); - - controlPanel.add(miniLabel); - controlPanel.add(new JLabel(")")); - - final JTextField positionUpdatesPerMicroSecondTextField = new JTextField("0", 5); - - controlPanel.add(positionUpdatesPerMicroSecondTextField); - final GLCapabilities caps = new GLCapabilities(null); - final GLProfile profile = caps.getGLProfile(); - caps.setDoubleBuffered(true); - caps.setHardwareAccelerated(true); - final GLCanvas canvas = new GLCanvas(caps); - - final Dimension dimension = new Dimension(Integer.getInteger("width", 742 - 64), Integer.getInteger("height", 742 - 64)); - canvas.setPreferredSize(dimension); - - canvas.addGLEventListener(new GLEventListener(){ - private double ratio; - - private final float xeye = 0f; - - private final float yeye = 0f; - - private final float zeye = 100f; - - private final float xat = 0f; - - private final float yat = 0f; - - private final float zat = 0f; - - public final float zoomFactor = 1.0f; - - private int frames; - - private long last = System.currentTimeMillis(); - - @Override public void dispose(GLAutoDrawable drawable) { - - } - - @Override public void display(GLAutoDrawable drawable) { - - final GL2 gl = drawable.getGL().getGL2(); - texture.enable(gl); - texture.bind(gl); - gl.glLoadIdentity(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - gl.glColor3f(1f, 1f, 1f); - - final GLU glu = new GLU(); - glu.gluPerspective(45f, ratio, 0f, 1000f); - - glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f); - if (running) { - kernel.execute(kernel.range); - if (kernel.isExplicit()) { - kernel.get(kernel.xyz); - } - final List profileInfo = kernel.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - } - kernel.render(gl); - - final long now = System.currentTimeMillis(); - final long time = now - last; - frames++; - - if (time > 1000) { // We update the frames/sec every second - if (running) { - final float framesPerSecond = (frames * 1000.0f) / time; - final int updatesPerMicroSecond = (int) ((framesPerSecond * kernel.range.getGlobalSize(0) * kernel.range - .getGlobalSize(0)) / 1000000); - framesPerSecondTextField.setText(String.format("%5.2f", framesPerSecond)); - positionUpdatesPerMicroSecondTextField.setText(String.format("%4d", updatesPerMicroSecond)); - } - frames = 0; - last = now; - } - gl.glFlush(); - - } - - @Override public void init(GLAutoDrawable drawable) { - final GL2 gl = drawable.getGL().getGL2(); - - gl.glShadeModel(GLLightingFunc.GL_SMOOTH); - gl.glEnable(GL.GL_BLEND); - gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE); - gl.glEnable(GL.GL_TEXTURE_2D); - gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); - gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); - try { - final InputStream textureStream = Main.class.getResourceAsStream("particle.jpg"); - TextureData data = TextureIO.newTextureData(profile, textureStream, false, "jpg"); - texture = TextureIO.newTexture(data); - } catch (final IOException e) { - e.printStackTrace(); - } catch (final GLException e) { - e.printStackTrace(); - } - - } - - @Override public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) { - width = _width; - height = _height; - - final GL2 gl = drawable.getGL().getGL2(); - gl.glViewport(0, 0, width, height); - - ratio = (double) width / (double) height; - - } - - }); - - panel.add(canvas, BorderLayout.CENTER); - frame.getContentPane().add(panel, BorderLayout.CENTER); - - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - frame.pack(); - frame.setVisible(true); - final FPSAnimator animator = new FPSAnimator(canvas, 100); - - animator.start(); - - } - -} diff --git a/examples/nbody/src/com/amd/aparapi/examples/nbody/Seq.java b/examples/nbody/src/com/amd/aparapi/examples/nbody/Seq.java deleted file mode 100644 index d37d4ab3..00000000 --- a/examples/nbody/src/com/amd/aparapi/examples/nbody/Seq.java +++ /dev/null @@ -1,361 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - - */ -package com.amd.aparapi.examples.nbody; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - -import javax.media.opengl.GL; -import javax.media.opengl.GL2; -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.GLException; -import javax.media.opengl.GLProfile; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.fixedfunc.GLLightingFunc; -import javax.media.opengl.glu.GLU; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.jogamp.opengl.util.FPSAnimator; -import com.jogamp.opengl.util.texture.Texture; -import com.jogamp.opengl.util.texture.TextureData; -import com.jogamp.opengl.util.texture.TextureIO; - -/** - * NBody implemented sequentially - * - * For a description of the NBody problem. - * - * @see http://en.wikipedia.org/wiki/N-body_problem - * - * We use JOGL to render the bodies. - * @see http://jogamp.org/jogl/www/ - * - * @author gfrost - * - */ -public class Seq{ - - public static class NBodyKernel { - protected final float delT = .005f; - - protected final float espSqr = 1.0f; - - protected final float mass = 5f; - - private final int bodies; - - private final float[] xyz; // positions xy and z of bodies - - private final float[] vxyz; // velocity component of x,y and z of bodies - - /** - * Constructor initializes xyz and vxyz arrays. - * - * @param _bodies - */ - public NBodyKernel(int _bodies) { - bodies = _bodies; - xyz = new float[bodies * 3]; - vxyz = new float[bodies * 3]; - final float maxDist = 20f; - for (int body = 0; body < (bodies * 3); body += 3) { - - final float theta = (float) (Math.random() * Math.PI * 2); - final float phi = (float) (Math.random() * Math.PI * 2); - final float radius = (float) (Math.random() * maxDist); - - // get the 3D dimensional coordinates - xyz[body + 0] = (float) (radius * Math.cos(theta) * Math.sin(phi)); - xyz[body + 1] = (float) (radius * Math.sin(theta) * Math.sin(phi)); - xyz[body + 2] = (float) (radius * Math.cos(phi)); - - // divide into two 'spheres of bodies' by adjusting x - - if ((body % 2) == 0) { - xyz[body + 0] += maxDist * 1.5; - } else { - xyz[body + 0] -= maxDist * 1.5; - } - } - } - - /** - * Here is the kernel entrypoint. Here is where we calculate the position of each body - */ - public void run() { - final int count = bodies * 3; - for (int body = 0; body < bodies; body++){ - final int globalId = body * 3; - - float accx = 0.f; - float accy = 0.f; - float accz = 0.f; - - final float myPosx = xyz[globalId + 0]; - final float myPosy = xyz[globalId + 1]; - final float myPosz = xyz[globalId + 2]; - for (int i = 0; i < count; i += 3) { - final float dx = xyz[i + 0] - myPosx; - final float dy = xyz[i + 1] - myPosy; - final float dz = xyz[i + 2] - myPosz; - final float invDist = 1f/((float)Math.sqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr)); - final float s = mass * invDist * invDist * invDist; - accx = accx + (s * dx); - accy = accy + (s * dy); - accz = accz + (s * dz); - } - accx = accx * delT; - accy = accy * delT; - accz = accz * delT; - xyz[globalId + 0] = myPosx + (vxyz[globalId + 0] * delT) + (accx * .5f * delT); - xyz[globalId + 1] = myPosy + (vxyz[globalId + 1] * delT) + (accy * .5f * delT); - xyz[globalId + 2] = myPosz + (vxyz[globalId + 2] * delT) + (accz * .5f * delT); - - vxyz[globalId + 0] = vxyz[globalId + 0] + accx; - vxyz[globalId + 1] = vxyz[globalId + 1] + accy; - vxyz[globalId + 2] = vxyz[globalId + 2] + accz; - } - } - - /** - * Render all particles to the OpenGL context - * - * @param gl - */ - - protected void render(GL2 gl) { - gl.glBegin(GL2.GL_QUADS); - - for (int i = 0; i < (bodies * 3); i += 3) { - gl.glTexCoord2f(0, 1); - gl.glVertex3f(xyz[i + 0], xyz[i + 1] + 1, xyz[i + 2]); - gl.glTexCoord2f(0, 0); - gl.glVertex3f(xyz[i + 0], xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 0); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1], xyz[i + 2]); - gl.glTexCoord2f(1, 1); - gl.glVertex3f(xyz[i + 0] + 1, xyz[i + 1] + 1, xyz[i + 2]); - } - gl.glEnd(); - } - - } - - public final static int bodies = Integer.getInteger("bodies", 8192); - - public static int width; - - public static int height; - - public static boolean running; - - static Texture texture; - - public static void main(String _args[]) { - - //System.load("/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/libawt.dylib"); - //System.load("/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/libjawt.dylib"); - final NBodyKernel kernel = new NBodyKernel(bodies); - - final JFrame frame = new JFrame("NBody"); - - final JPanel panel = new JPanel(new BorderLayout()); - final JPanel controlPanel = new JPanel(new FlowLayout()); - panel.add(controlPanel, BorderLayout.SOUTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - controlPanel.add(new JLabel("SEQ")); - - controlPanel.add(new JLabel(" Particles")); - controlPanel.add(new JTextField("" + bodies, 5)); - - controlPanel.add(new JLabel("FPS")); - final JTextField framesPerSecondTextField = new JTextField("0", 5); - - controlPanel.add(framesPerSecondTextField); - controlPanel.add(new JLabel("Score(")); - final JLabel miniLabel = new JLabel("calcs
      µsec"); - - controlPanel.add(miniLabel); - controlPanel.add(new JLabel(")")); - - final JTextField positionUpdatesPerMicroSecondTextField = new JTextField("0", 5); - - controlPanel.add(positionUpdatesPerMicroSecondTextField); - final GLCapabilities caps = new GLCapabilities(null); - final GLProfile profile = caps.getGLProfile(); - caps.setDoubleBuffered(true); - caps.setHardwareAccelerated(true); - final GLCanvas canvas = new GLCanvas(caps); - - final Dimension dimension = new Dimension(Integer.getInteger("width", 742 - 64), Integer.getInteger("height", 742 - 64)); - canvas.setPreferredSize(dimension); - - canvas.addGLEventListener(new GLEventListener(){ - private double ratio; - - private final float xeye = 0f; - - private final float yeye = 0f; - - private final float zeye = 100f; - - private final float xat = 0f; - - private final float yat = 0f; - - private final float zat = 0f; - - public final float zoomFactor = 1.0f; - - private int frames; - - private long last = System.currentTimeMillis(); - - @Override public void dispose(GLAutoDrawable drawable) { - - } - - @Override public void display(GLAutoDrawable drawable) { - - final GL2 gl = drawable.getGL().getGL2(); - - texture.enable(gl); - texture.bind(gl); - gl.glLoadIdentity(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - gl.glColor3f(1f, 1f, 1f); - - final GLU glu = new GLU(); - glu.gluPerspective(45f, ratio, 0f, 1000f); - - glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f); - if (running) { - kernel.run(); - } - kernel.render(gl); - - final long now = System.currentTimeMillis(); - final long time = now - last; - frames++; - - if (time > 1000) { // We update the frames/sec every second - if (running) { - final float framesPerSecond = (frames * 1000.0f) / time; - final int updatesPerMicroSecond = (int) ((framesPerSecond * bodies * bodies) / 1000000); - framesPerSecondTextField.setText(String.format("%5.2f", framesPerSecond)); - positionUpdatesPerMicroSecondTextField.setText(String.format("%4d", updatesPerMicroSecond)); - } - frames = 0; - last = now; - } - gl.glFlush(); - - } - - @Override public void init(GLAutoDrawable drawable) { - final GL2 gl = drawable.getGL().getGL2(); - - gl.glShadeModel(GLLightingFunc.GL_SMOOTH); - gl.glEnable(GL.GL_BLEND); - gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE); - gl.glEnable(GL.GL_TEXTURE_2D); - gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); - gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); - try { - final InputStream textureStream = Seq.class.getResourceAsStream("particle.jpg"); - TextureData data = TextureIO.newTextureData(profile, textureStream, false, "jpg"); - texture = TextureIO.newTexture(data); - } catch (final IOException e) { - e.printStackTrace(); - } catch (final GLException e) { - e.printStackTrace(); - } - - } - - @Override public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) { - width = _width; - height = _height; - - final GL2 gl = drawable.getGL().getGL2(); - gl.glViewport(0, 0, width, height); - - ratio = (double) width / (double) height; - - } - - }); - - panel.add(canvas, BorderLayout.CENTER); - frame.getContentPane().add(panel, BorderLayout.CENTER); - final FPSAnimator animator = new FPSAnimator(canvas, 100); - - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - frame.pack(); - frame.setVisible(true); - - animator.start(); - - } - -} diff --git a/examples/nbody/src/com/amd/aparapi/examples/nbody/duke.jpg b/examples/nbody/src/com/amd/aparapi/examples/nbody/duke.jpg deleted file mode 100644 index 2729fd2f..00000000 Binary files a/examples/nbody/src/com/amd/aparapi/examples/nbody/duke.jpg and /dev/null differ diff --git a/examples/nbody/src/com/amd/aparapi/examples/nbody/moon.jpg b/examples/nbody/src/com/amd/aparapi/examples/nbody/moon.jpg deleted file mode 100644 index 40a6668a..00000000 Binary files a/examples/nbody/src/com/amd/aparapi/examples/nbody/moon.jpg and /dev/null differ diff --git a/examples/nbody/src/com/amd/aparapi/examples/nbody/particle.jpg b/examples/nbody/src/com/amd/aparapi/examples/nbody/particle.jpg deleted file mode 100644 index 70e28ac5..00000000 Binary files a/examples/nbody/src/com/amd/aparapi/examples/nbody/particle.jpg and /dev/null differ diff --git a/examples/oopnbody/.classpath b/examples/oopnbody/.classpath deleted file mode 100644 index a9d65058..00000000 --- a/examples/oopnbody/.classpath +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/examples/oopnbody/.project b/examples/oopnbody/.project deleted file mode 100644 index 87e9909a..00000000 --- a/examples/oopnbody/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - oopnbody - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/oopnbody/README.txt b/examples/oopnbody/README.txt deleted file mode 100644 index d5fa2430..00000000 --- a/examples/oopnbody/README.txt +++ /dev/null @@ -1,20 +0,0 @@ -oopnbody readme - December 2012 - -This demo is an example of an Aparapi experimental feature to allow some -limited use of java objects in kernels, based on the regular nbody demo. - -There is limited support in Aparapi for using arrays of java objects in kernels, -where a kernel accesses the objects by indexing into the object array and the -only member functions on the objects that can be called -are bean-style getters and setters, where if the object -has a data member "foo" the getter will be named "getFoo" and so on. - -The types of the object fields accessed in a kernel in this way must be basic -types otherwise in line with Aparapi usage. - -This may allow a more natural java programming style. This is implemented by -copying the referenced object fields into C-style arrays of structs to pass to -OpenCL. Then when the kernel completes the data is replaced into the original -java object. The extra copying may result in lower performance than explicit -use of basic type arrays in the original java source. - diff --git a/examples/oopnbody/build.xml b/examples/oopnbody/build.xml deleted file mode 100644 index 62802dcb..00000000 --- a/examples/oopnbody/build.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/oopnbody/nbody.bat b/examples/oopnbody/nbody.bat deleted file mode 100644 index 39440531..00000000 --- a/examples/oopnbody/nbody.bat +++ /dev/null @@ -1,14 +0,0 @@ -@echo off - -java ^ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist;..\third-party\jogamp ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dbodies=%2 ^ - -Dheight=600 ^ - -Dwidth=600 ^ - -classpath ..\third-party\jogamp\jogl-all.jar;..\third-party\jogamp\gluegen-rt.jar;..\..\com.amd.aparapi\dist\aparapi.jar;oopnbody.jar ^ - com.amd.aparapi.examples.oopnbody.Main - - diff --git a/examples/oopnbody/nbody.sh b/examples/oopnbody/nbody.sh deleted file mode 100755 index 31105570..00000000 --- a/examples/oopnbody/nbody.sh +++ /dev/null @@ -1,12 +0,0 @@ - -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist:../third-party/jogamp \ - -Dcom.amd.aparapi.executionMode=$1 \ - -Dcom.amd.aparapi.logLevel=INFO \ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true \ - -Dbodies=$2 \ - -Dheight=800 \ - -Dwidth=1200 \ - -classpath ../third-party/jogamp/jogl-all.jar:../third-party/jogamp/gluegen-rt.jar:../../com.amd.aparapi/dist/aparapi.jar:oopnbody.jar \ - com.amd.aparapi.examples.oopnbody.Main - diff --git a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/Body.java b/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/Body.java deleted file mode 100644 index 8ca7b211..00000000 --- a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/Body.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.amd.aparapi.examples.oopnbody; - -import java.util.List; - -public final class Body{ - protected final float delT = .005f; - - protected final float espSqr = 1.0f; - - public static Body[] allBodies; - - public Body(float _x, float _y, float _z, float _m) { - x = _x; - y = _y; - z = _z; - m = _m; - } - - float x, y, z, m, vx, vy, vz; - - public float getX() { - return x; - } - - public float getY() { - return y; - } - - public float getZ() { - return z; - } - - public float getVx() { - return vx; - } - - public float getVy() { - return vy; - } - - public float getVz() { - return vz; - } - - public float getM() { - return m; - } - - public void setM(float _m) { - m = _m; - } - - public void setX(float _x) { - x = _x; - } - - public void setY(float _y) { - y = _y; - } - - public void setZ(float _z) { - z = _z; - } - - public void setVx(float _vx) { - vx = _vx; - } - - public void setVy(float _vy) { - vy = _vy; - } - - public void setVz(float _vz) { - vz = _vz; - } -} diff --git a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/Main.java b/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/Main.java deleted file mode 100644 index f945c085..00000000 --- a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/Main.java +++ /dev/null @@ -1,374 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - - */ -package com.amd.aparapi.examples.oopnbody; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; -import java.util.ArrayList; -import java.util.Arrays; - -import javax.media.opengl.GL; -import javax.media.opengl.GL2; -import javax.media.opengl.GLAutoDrawable; -import javax.media.opengl.GLCapabilities; -import javax.media.opengl.GLEventListener; -import javax.media.opengl.GLException; -import javax.media.opengl.GLProfile; -import javax.media.opengl.awt.GLCanvas; -import javax.media.opengl.fixedfunc.GLLightingFunc; -import javax.media.opengl.glu.GLU; -import javax.swing.JButton; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; - -import com.jogamp.opengl.util.FPSAnimator; -import com.jogamp.opengl.util.texture.Texture; -import com.jogamp.opengl.util.texture.TextureIO; - -/** - * NBody implementing demonstrating Aparapi kernels. - * - * For a description of the NBody problem. - * - * @see http://en.wikipedia.org/wiki/N-body_problem - * - * We use JOGL to render the bodies. - * @see http://jogamp.org/jogl/www/ - * - * @author gfrost - * - */ -public class Main{ - - public static class NBodyKernel extends Kernel{ - - protected final float delT = .005f; - - protected final float espSqr = 1.0f; - - protected final float mass = 5f; - - private final Range range; - - public Body[] bodies; - - /** - * Constructor initializes xyz and vxyz arrays. - * - * @param _bodies - */ - public NBodyKernel(Range _range) { - range = _range; - bodies = new Body[range.getGlobalSize(0)]; - - final float maxDist = 20f; - for (int body = 0; body < range.getGlobalSize(0); body++) { - final float theta = (float) (Math.random() * Math.PI * 2); - final float phi = (float) (Math.random() * Math.PI * 2); - final float radius = (float) (Math.random() * maxDist); - - // get the 3D dimensional coordinates - float x = (float) (radius * Math.cos(theta) * Math.sin(phi)); - float y = (float) (radius * Math.sin(theta) * Math.sin(phi)); - float z = (float) (radius * Math.cos(phi)); - - // divide into two 'spheres of bodies' by adjusting x - if ((body % 2) == 0) { - x += maxDist * 1.5; - } else { - x -= maxDist * 1.5; - } - bodies[body] = new Body(x, y, z, 5f); - } - - Body.allBodies = bodies; - } - - /** - * Here is the kernel entrypoint. Here is where we calculate the position of each body - */ - @Override public void run() { - final int body = getGlobalId(); - - float accx = 0.f; - float accy = 0.f; - float accz = 0.f; - - float myPosx = bodies[body].getX(); - float myPosy = bodies[body].getY(); - float myPosz = bodies[body].getZ(); - - for (int i = 0; i < getGlobalSize(0); i++) { - - final float dx = bodies[i].getX() - myPosx; - final float dy = bodies[i].getY() - myPosy; - final float dz = bodies[i].getZ() - myPosz; - final float invDist = rsqrt((dx * dx) + (dy * dy) + (dz * dz) + espSqr); - final float s = bodies[i].getM() * invDist * invDist * invDist; - accx = accx + (s * dx); - accy = accy + (s * dy); - accz = accz + (s * dz); - } - - accx = accx * delT; - accy = accy * delT; - accz = accz * delT; - bodies[body].setX(myPosx + (bodies[body].getVx() * delT) + (accx * .5f * delT)); - bodies[body].setY(myPosy + (bodies[body].getVy() * delT) + (accy * .5f * delT)); - bodies[body].setZ(myPosz + (bodies[body].getVz() * delT) + (accz * .5f * delT)); - - bodies[body].setVx(bodies[body].getVx() + accx); - bodies[body].setVy(bodies[body].getVy() + accy); - bodies[body].setVz(bodies[body].getVz() + accz); - } - - /** - * Render all particles to the OpenGL context - * - * @param gl - */ - - protected void render(GL2 gl) { - gl.glBegin(GL2.GL_QUADS); - int sz = range.getGlobalSize(0); - for (int i = 0; i < sz; i++) { - - if (i < (sz / 2)) { - gl.glColor3f(1f, 0f, 0f); - } else if (i < (sz * 0.666)) { - gl.glColor3f(0f, 1f, 0f); - } else { - gl.glColor3f(0f, 0f, 1f); - } - - Body currBody = bodies[i]; - - gl.glTexCoord2f(0, 1); - gl.glVertex3f(currBody.getX(), currBody.getY() + 1, currBody.getZ()); - gl.glTexCoord2f(0, 0); - gl.glVertex3f(currBody.getX(), currBody.getY(), currBody.getZ()); - gl.glTexCoord2f(1, 0); - gl.glVertex3f(currBody.getX() + 1, currBody.getY(), currBody.getZ()); - gl.glTexCoord2f(1, 1); - gl.glVertex3f(currBody.getX() + 1, currBody.getY() + 1, currBody.getZ()); - - } - gl.glEnd(); - } - } - - public static int width; - - public static int height; - - public static boolean running; - - public static Texture texture = null; - - public static void main(String _args[]) { - final int bodyCount = Integer.getInteger("bodies", 8192); - - //final Main kernel = new Main(bodyCount); - final NBodyKernel kernel = new NBodyKernel(Range.create(bodyCount)); - - final JFrame frame = new JFrame("NBody"); - - final JPanel panel = new JPanel(new BorderLayout()); - final JPanel controlPanel = new JPanel(new FlowLayout()); - panel.add(controlPanel, BorderLayout.SOUTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - //controlPanel.add(new JLabel(kernel.getExecutionMode().toString())); - - controlPanel.add(new JLabel(" Particles")); - controlPanel.add(new JTextField("" + bodyCount, 5)); - - controlPanel.add(new JLabel("FPS")); - final JTextField framesPerSecondTextField = new JTextField("0", 5); - - controlPanel.add(framesPerSecondTextField); - controlPanel.add(new JLabel("Score(")); - final JLabel miniLabel = new JLabel("calcs
      µsec"); - - controlPanel.add(miniLabel); - controlPanel.add(new JLabel(")")); - - final JTextField positionUpdatesPerMicroSecondTextField = new JTextField("0", 5); - - controlPanel.add(positionUpdatesPerMicroSecondTextField); - final GLCapabilities caps = new GLCapabilities(null); - final GLProfile profile = caps.getGLProfile(); - caps.setDoubleBuffered(true); - caps.setHardwareAccelerated(true); - final GLCanvas canvas = new GLCanvas(caps); - - final Dimension dimension = new Dimension(Integer.getInteger("width", 742 - 64), Integer.getInteger("height", 742 - 64)); - canvas.setPreferredSize(dimension); - - canvas.addGLEventListener(new GLEventListener(){ - private double ratio; - - private final float xeye = 0f; - - private final float yeye = 0f; - - private final float zeye = 100f; - - private final float xat = 0f; - - private final float yat = 0f; - - private final float zat = 0f; - - public final float zoomFactor = 1.0f; - - private int frames; - - private long last = System.currentTimeMillis(); - - @Override public void dispose(GLAutoDrawable drawable) { - - } - - @Override public void display(GLAutoDrawable drawable) { - - final GL2 gl = drawable.getGL().getGL2(); - texture.enable(gl); - texture.bind(gl); - gl.glLoadIdentity(); - gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - gl.glColor3f(1f, 1f, 1f); - - final GLU glu = new GLU(); - glu.gluPerspective(45f, ratio, 0f, 1000f); - - glu.gluLookAt(xeye, yeye, zeye * zoomFactor, xat, yat, zat, 0f, 1f, 0f); - if (running) { - //Arrays.parallel(bodies.toArray(new Body[1])).forEach(b -> {b.nextMove();}); - kernel.execute(kernel.range); - - } - kernel.render(gl); - - final long now = System.currentTimeMillis(); - final long time = now - last; - frames++; - - if (time > 1000) { // We update the frames/sec every second - if (running) { - final float framesPerSecond = (frames * 1000.0f) / time; - final int updatesPerMicroSecond = (int) ((framesPerSecond * bodyCount * bodyCount) / 1000000); - framesPerSecondTextField.setText(String.format("%5.2f", framesPerSecond)); - positionUpdatesPerMicroSecondTextField.setText(String.format("%4d", updatesPerMicroSecond)); - } - frames = 0; - last = now; - } - gl.glFlush(); - - } - - @Override public void init(GLAutoDrawable drawable) { - final GL2 gl = drawable.getGL().getGL2(); - - gl.glShadeModel(GLLightingFunc.GL_SMOOTH); - gl.glEnable(GL.GL_BLEND); - gl.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE); - - gl.glEnable(GL.GL_TEXTURE_2D); - gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR); - gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_NEAREST); - try { - final InputStream textureStream = Main.class.getResourceAsStream("particle.jpg"); - texture = TextureIO.newTexture(textureStream, false, null); - texture.enable(gl); - } catch (final IOException e) { - e.printStackTrace(); - } catch (final GLException e) { - e.printStackTrace(); - } - - } - - @Override public void reshape(GLAutoDrawable drawable, int x, int y, int _width, int _height) { - width = _width; - height = _height; - - final GL2 gl = drawable.getGL().getGL2(); - gl.glViewport(0, 0, width, height); - - ratio = (double) width / (double) height; - - } - - }); - - panel.add(canvas, BorderLayout.CENTER); - frame.getContentPane().add(panel, BorderLayout.CENTER); - final FPSAnimator animator = new FPSAnimator(canvas, 100); - - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - frame.pack(); - frame.setVisible(true); - - animator.start(); - - } - -} diff --git a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/duke.jpg b/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/duke.jpg deleted file mode 100644 index 2729fd2f..00000000 Binary files a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/duke.jpg and /dev/null differ diff --git a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/moon.jpg b/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/moon.jpg deleted file mode 100644 index 40a6668a..00000000 Binary files a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/moon.jpg and /dev/null differ diff --git a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/particle.jpg b/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/particle.jpg deleted file mode 100644 index 70e28ac5..00000000 Binary files a/examples/oopnbody/src/com/amd/aparapi/examples/oopnbody/particle.jpg and /dev/null differ diff --git a/examples/third-party/.classpath b/examples/third-party/.classpath deleted file mode 100644 index e9bcd511..00000000 --- a/examples/third-party/.classpath +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/third-party/.project b/examples/third-party/.project deleted file mode 100644 index 650cbe3e..00000000 --- a/examples/third-party/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - third-party - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/examples/third-party/apache/commons/commons-lang3-3.1.jar b/examples/third-party/apache/commons/commons-lang3-3.1.jar deleted file mode 100644 index a85e539b..00000000 Binary files a/examples/third-party/apache/commons/commons-lang3-3.1.jar and /dev/null differ diff --git a/examples/third-party/apache/logging/log4j-1.2.16.jar b/examples/third-party/apache/logging/log4j-1.2.16.jar deleted file mode 100644 index 3f9d8476..00000000 Binary files a/examples/third-party/apache/logging/log4j-1.2.16.jar and /dev/null differ diff --git a/examples/third-party/apache/lucene/lucene-core-3.5.0.jar b/examples/third-party/apache/lucene/lucene-core-3.5.0.jar deleted file mode 100644 index 498a5992..00000000 Binary files a/examples/third-party/apache/lucene/lucene-core-3.5.0.jar and /dev/null differ diff --git a/examples/third-party/get-jogamp-build.xml b/examples/third-party/get-jogamp-build.xml deleted file mode 100644 index 78b2b35d..00000000 --- a/examples/third-party/get-jogamp-build.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/third-party/jogamp/gluegen-rt-natives-linux-amd64.jar b/examples/third-party/jogamp/gluegen-rt-natives-linux-amd64.jar deleted file mode 100644 index 98177ccc..00000000 Binary files a/examples/third-party/jogamp/gluegen-rt-natives-linux-amd64.jar and /dev/null differ diff --git a/examples/third-party/jogamp/gluegen-rt-natives-linux-i586.jar b/examples/third-party/jogamp/gluegen-rt-natives-linux-i586.jar deleted file mode 100644 index 668bbbb5..00000000 Binary files a/examples/third-party/jogamp/gluegen-rt-natives-linux-i586.jar and /dev/null differ diff --git a/examples/third-party/jogamp/gluegen-rt-natives-macosx-universal.jar b/examples/third-party/jogamp/gluegen-rt-natives-macosx-universal.jar deleted file mode 100644 index 11999bc9..00000000 Binary files a/examples/third-party/jogamp/gluegen-rt-natives-macosx-universal.jar and /dev/null differ diff --git a/examples/third-party/jogamp/gluegen-rt-natives-windows-amd64.jar b/examples/third-party/jogamp/gluegen-rt-natives-windows-amd64.jar deleted file mode 100644 index 43c1a957..00000000 Binary files a/examples/third-party/jogamp/gluegen-rt-natives-windows-amd64.jar and /dev/null differ diff --git a/examples/third-party/jogamp/gluegen-rt-natives-windows-i586.jar b/examples/third-party/jogamp/gluegen-rt-natives-windows-i586.jar deleted file mode 100644 index b9aa1349..00000000 Binary files a/examples/third-party/jogamp/gluegen-rt-natives-windows-i586.jar and /dev/null differ diff --git a/examples/third-party/jogamp/gluegen-rt.jar b/examples/third-party/jogamp/gluegen-rt.jar deleted file mode 100644 index a9957e61..00000000 Binary files a/examples/third-party/jogamp/gluegen-rt.jar and /dev/null differ diff --git a/examples/third-party/jogamp/jogl-all-natives-linux-amd64.jar b/examples/third-party/jogamp/jogl-all-natives-linux-amd64.jar deleted file mode 100644 index 0f914e25..00000000 Binary files a/examples/third-party/jogamp/jogl-all-natives-linux-amd64.jar and /dev/null differ diff --git a/examples/third-party/jogamp/jogl-all-natives-linux-i586.jar b/examples/third-party/jogamp/jogl-all-natives-linux-i586.jar deleted file mode 100644 index e969c9b6..00000000 Binary files a/examples/third-party/jogamp/jogl-all-natives-linux-i586.jar and /dev/null differ diff --git a/examples/third-party/jogamp/jogl-all-natives-macosx-universal.jar b/examples/third-party/jogamp/jogl-all-natives-macosx-universal.jar deleted file mode 100644 index 32f15677..00000000 Binary files a/examples/third-party/jogamp/jogl-all-natives-macosx-universal.jar and /dev/null differ diff --git a/examples/third-party/jogamp/jogl-all-natives-windows-amd64.jar b/examples/third-party/jogamp/jogl-all-natives-windows-amd64.jar deleted file mode 100644 index 8ca36828..00000000 Binary files a/examples/third-party/jogamp/jogl-all-natives-windows-amd64.jar and /dev/null differ diff --git a/examples/third-party/jogamp/jogl-all-natives-windows-i586.jar b/examples/third-party/jogamp/jogl-all-natives-windows-i586.jar deleted file mode 100644 index 1ff12893..00000000 Binary files a/examples/third-party/jogamp/jogl-all-natives-windows-i586.jar and /dev/null differ diff --git a/examples/third-party/jogamp/jogl-all.jar b/examples/third-party/jogamp/jogl-all.jar deleted file mode 100644 index 977f5f15..00000000 Binary files a/examples/third-party/jogamp/jogl-all.jar and /dev/null differ diff --git a/examples/third-party/jogamp/linux-amd64/libgluegen-rt.so b/examples/third-party/jogamp/linux-amd64/libgluegen-rt.so deleted file mode 100644 index e24d5e0b..00000000 Binary files a/examples/third-party/jogamp/linux-amd64/libgluegen-rt.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-amd64/libjogl_desktop.so b/examples/third-party/jogamp/linux-amd64/libjogl_desktop.so deleted file mode 100644 index f91d7c69..00000000 Binary files a/examples/third-party/jogamp/linux-amd64/libjogl_desktop.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-amd64/libjogl_mobile.so b/examples/third-party/jogamp/linux-amd64/libjogl_mobile.so deleted file mode 100644 index 3da6eec9..00000000 Binary files a/examples/third-party/jogamp/linux-amd64/libjogl_mobile.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-amd64/libnativewindow_awt.so b/examples/third-party/jogamp/linux-amd64/libnativewindow_awt.so deleted file mode 100644 index be10b141..00000000 Binary files a/examples/third-party/jogamp/linux-amd64/libnativewindow_awt.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-amd64/libnativewindow_x11.so b/examples/third-party/jogamp/linux-amd64/libnativewindow_x11.so deleted file mode 100644 index 53100afc..00000000 Binary files a/examples/third-party/jogamp/linux-amd64/libnativewindow_x11.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-amd64/libnewt.so b/examples/third-party/jogamp/linux-amd64/libnewt.so deleted file mode 100644 index d7579381..00000000 Binary files a/examples/third-party/jogamp/linux-amd64/libnewt.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-i586/libgluegen-rt.so b/examples/third-party/jogamp/linux-i586/libgluegen-rt.so deleted file mode 100644 index b58b5e1f..00000000 Binary files a/examples/third-party/jogamp/linux-i586/libgluegen-rt.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-i586/libjogl_desktop.so b/examples/third-party/jogamp/linux-i586/libjogl_desktop.so deleted file mode 100644 index 1fe60d53..00000000 Binary files a/examples/third-party/jogamp/linux-i586/libjogl_desktop.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-i586/libjogl_mobile.so b/examples/third-party/jogamp/linux-i586/libjogl_mobile.so deleted file mode 100644 index db2849cf..00000000 Binary files a/examples/third-party/jogamp/linux-i586/libjogl_mobile.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-i586/libnativewindow_awt.so b/examples/third-party/jogamp/linux-i586/libnativewindow_awt.so deleted file mode 100644 index 1a5446d6..00000000 Binary files a/examples/third-party/jogamp/linux-i586/libnativewindow_awt.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-i586/libnativewindow_x11.so b/examples/third-party/jogamp/linux-i586/libnativewindow_x11.so deleted file mode 100644 index 9e18ccd0..00000000 Binary files a/examples/third-party/jogamp/linux-i586/libnativewindow_x11.so and /dev/null differ diff --git a/examples/third-party/jogamp/linux-i586/libnewt.so b/examples/third-party/jogamp/linux-i586/libnewt.so deleted file mode 100644 index 9d00b7d5..00000000 Binary files a/examples/third-party/jogamp/linux-i586/libnewt.so and /dev/null differ diff --git a/examples/third-party/jogamp/macosx-universal/libgluegen-rt.jnilib b/examples/third-party/jogamp/macosx-universal/libgluegen-rt.jnilib deleted file mode 100644 index 4d5eac66..00000000 Binary files a/examples/third-party/jogamp/macosx-universal/libgluegen-rt.jnilib and /dev/null differ diff --git a/examples/third-party/jogamp/macosx-universal/libjogl_desktop.jnilib b/examples/third-party/jogamp/macosx-universal/libjogl_desktop.jnilib deleted file mode 100644 index ebc22dcd..00000000 Binary files a/examples/third-party/jogamp/macosx-universal/libjogl_desktop.jnilib and /dev/null differ diff --git a/examples/third-party/jogamp/macosx-universal/libjogl_mobile.jnilib b/examples/third-party/jogamp/macosx-universal/libjogl_mobile.jnilib deleted file mode 100644 index 9a4be3a7..00000000 Binary files a/examples/third-party/jogamp/macosx-universal/libjogl_mobile.jnilib and /dev/null differ diff --git a/examples/third-party/jogamp/macosx-universal/libnativewindow_awt.jnilib b/examples/third-party/jogamp/macosx-universal/libnativewindow_awt.jnilib deleted file mode 100644 index 90607796..00000000 Binary files a/examples/third-party/jogamp/macosx-universal/libnativewindow_awt.jnilib and /dev/null differ diff --git a/examples/third-party/jogamp/macosx-universal/libnativewindow_macosx.jnilib b/examples/third-party/jogamp/macosx-universal/libnativewindow_macosx.jnilib deleted file mode 100644 index 9b5c146f..00000000 Binary files a/examples/third-party/jogamp/macosx-universal/libnativewindow_macosx.jnilib and /dev/null differ diff --git a/examples/third-party/jogamp/macosx-universal/libnewt.jnilib b/examples/third-party/jogamp/macosx-universal/libnewt.jnilib deleted file mode 100644 index 2396a034..00000000 Binary files a/examples/third-party/jogamp/macosx-universal/libnewt.jnilib and /dev/null differ diff --git a/examples/third-party/jogamp/windows-amd64/gluegen-rt.dll b/examples/third-party/jogamp/windows-amd64/gluegen-rt.dll deleted file mode 100644 index 9ea63b1c..00000000 Binary files a/examples/third-party/jogamp/windows-amd64/gluegen-rt.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-amd64/jogl_desktop.dll b/examples/third-party/jogamp/windows-amd64/jogl_desktop.dll deleted file mode 100644 index 2b278207..00000000 Binary files a/examples/third-party/jogamp/windows-amd64/jogl_desktop.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-amd64/jogl_mobile.dll b/examples/third-party/jogamp/windows-amd64/jogl_mobile.dll deleted file mode 100644 index 9705b641..00000000 Binary files a/examples/third-party/jogamp/windows-amd64/jogl_mobile.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-amd64/nativewindow_awt.dll b/examples/third-party/jogamp/windows-amd64/nativewindow_awt.dll deleted file mode 100644 index bf675633..00000000 Binary files a/examples/third-party/jogamp/windows-amd64/nativewindow_awt.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-amd64/nativewindow_win32.dll b/examples/third-party/jogamp/windows-amd64/nativewindow_win32.dll deleted file mode 100644 index 044d0800..00000000 Binary files a/examples/third-party/jogamp/windows-amd64/nativewindow_win32.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-amd64/newt.dll b/examples/third-party/jogamp/windows-amd64/newt.dll deleted file mode 100644 index aa7e2f9c..00000000 Binary files a/examples/third-party/jogamp/windows-amd64/newt.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-x86/gluegen-rt.dll b/examples/third-party/jogamp/windows-x86/gluegen-rt.dll deleted file mode 100644 index 409fd662..00000000 Binary files a/examples/third-party/jogamp/windows-x86/gluegen-rt.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-x86/jogl_desktop.dll b/examples/third-party/jogamp/windows-x86/jogl_desktop.dll deleted file mode 100644 index 415602e9..00000000 Binary files a/examples/third-party/jogamp/windows-x86/jogl_desktop.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-x86/jogl_mobile.dll b/examples/third-party/jogamp/windows-x86/jogl_mobile.dll deleted file mode 100644 index 5cb0d6b3..00000000 Binary files a/examples/third-party/jogamp/windows-x86/jogl_mobile.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-x86/nativewindow_awt.dll b/examples/third-party/jogamp/windows-x86/nativewindow_awt.dll deleted file mode 100644 index d3868c7b..00000000 Binary files a/examples/third-party/jogamp/windows-x86/nativewindow_awt.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-x86/nativewindow_win32.dll b/examples/third-party/jogamp/windows-x86/nativewindow_win32.dll deleted file mode 100644 index a9c0174d..00000000 Binary files a/examples/third-party/jogamp/windows-x86/nativewindow_win32.dll and /dev/null differ diff --git a/examples/third-party/jogamp/windows-x86/newt.dll b/examples/third-party/jogamp/windows-x86/newt.dll deleted file mode 100644 index 46f5f8e7..00000000 Binary files a/examples/third-party/jogamp/windows-x86/newt.dll and /dev/null differ diff --git a/examples/third-party/junit/junit-4.10.jar b/examples/third-party/junit/junit-4.10.jar deleted file mode 100644 index bf5c0b9c..00000000 Binary files a/examples/third-party/junit/junit-4.10.jar and /dev/null differ diff --git a/samples/add/.classpath b/samples/add/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/add/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/add/.project b/samples/add/.project deleted file mode 100644 index 11a89faa..00000000 --- a/samples/add/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - add - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/add/add.bat b/samples/add/add.bat deleted file mode 100644 index 13fcb3c3..00000000 --- a/samples/add/add.bat +++ /dev/null @@ -1,7 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;add.jar ^ - com.amd.aparapi.sample.add.Main - diff --git a/samples/add/add.sh b/samples/add/add.sh deleted file mode 100644 index df37f681..00000000 --- a/samples/add/add.sh +++ /dev/null @@ -1,5 +0,0 @@ -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist \ - -Dcom.amd.aparapi.executionMode=%1 \ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:add.jar \ - com.amd.aparapi.sample.add.Main diff --git a/samples/add/build.xml b/samples/add/build.xml deleted file mode 100644 index 2b0d1eee..00000000 --- a/samples/add/build.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/samples/add/src/com/amd/aparapi/sample/add/Main.java b/samples/add/src/com/amd/aparapi/sample/add/Main.java deleted file mode 100644 index a953261b..00000000 --- a/samples/add/src/com/amd/aparapi/sample/add/Main.java +++ /dev/null @@ -1,76 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.add; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -public class Main{ - - public static void main(String[] _args) { - - final int size = 512; - - final float[] a = new float[size]; - final float[] b = new float[size]; - - for (int i = 0; i < size; i++) { - a[i] = (float) (Math.random() * 100); - b[i] = (float) (Math.random() * 100); - } - - final float[] sum = new float[size]; - - Kernel kernel = new Kernel(){ - @Override public void run() { - int gid = getGlobalId(); - sum[gid] = a[gid] + b[gid]; - } - }; - - kernel.execute(Range.create(512)); - - for (int i = 0; i < size; i++) { - System.out.printf("%6.2f + %6.2f = %8.2f\n", a[i], b[i], sum[i]); - } - - kernel.dispose(); - } - -} diff --git a/samples/blackscholes/.classpath b/samples/blackscholes/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/blackscholes/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/blackscholes/.project b/samples/blackscholes/.project deleted file mode 100644 index eb5be55b..00000000 --- a/samples/blackscholes/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - blackscholes - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/blackscholes/blackscholes.bat b/samples/blackscholes/blackscholes.bat deleted file mode 100644 index 8890c0e6..00000000 --- a/samples/blackscholes/blackscholes.bat +++ /dev/null @@ -1,9 +0,0 @@ -java ^ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dcom.amd.aparapi.enableShowFakeLocalVariableTable=true ^ - -Dsize=%2 ^ - -Diterations=%3 ^ - -classpath blackscholes.jar;..\..\com.amd.aparapi\dist\aparapi.jar ^ - com.amd.aparapi.samples.blackscholes.Main diff --git a/samples/blackscholes/blackscholes.sh b/samples/blackscholes/blackscholes.sh deleted file mode 100644 index abf0f0a6..00000000 --- a/samples/blackscholes/blackscholes.sh +++ /dev/null @@ -1,7 +0,0 @@ -java \ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist \ - -Dcom.amd.aparapi.executionMode=$1 \ - -Dsize=$2 \ - -Diterations=$3 \ - -classpath blackscholes.jar:..\..\com.amd.aparapi\dist\aparapi.jar \ - com.amd.aparapi.samples.blackscholes.Main diff --git a/samples/blackscholes/build.xml b/samples/blackscholes/build.xml deleted file mode 100644 index 14ac01d6..00000000 --- a/samples/blackscholes/build.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/samples/blackscholes/src/com/amd/aparapi/samples/blackscholes/Main.java b/samples/blackscholes/src/com/amd/aparapi/samples/blackscholes/Main.java deleted file mode 100644 index 60c31142..00000000 --- a/samples/blackscholes/src/com/amd/aparapi/samples/blackscholes/Main.java +++ /dev/null @@ -1,205 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi.samples.blackscholes; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -public class Main{ - - public static class BlackScholesKernel extends Kernel{ - - /* - * For a description of the algorithm and the terms used, please see the - * documentation for this sample. - * - * On invocation of kernel blackScholes, each work thread calculates call price - * and put price values for given stock price, option strike price, - * time to expiration date, risk free interest and volatility factor. - */ - - final float S_LOWER_LIMIT = 10.0f; - - final float S_UPPER_LIMIT = 100.0f; - - final float K_LOWER_LIMIT = 10.0f; - - final float K_UPPER_LIMIT = 100.0f; - - final float T_LOWER_LIMIT = 1.0f; - - final float T_UPPER_LIMIT = 10.0f; - - final float R_LOWER_LIMIT = 0.01f; - - final float R_UPPER_LIMIT = 0.05f; - - final float SIGMA_LOWER_LIMIT = 0.01f; - - final float SIGMA_UPPER_LIMIT = 0.10f; - - /** - * @brief Abromowitz Stegun approxmimation for PHI (Cumulative Normal Distribution Function) - * @param X input value - * @param phi pointer to store calculated CND of X - */ - float phi(float X) { - final float c1 = 0.319381530f; - final float c2 = -0.356563782f; - final float c3 = 1.781477937f; - final float c4 = -1.821255978f; - final float c5 = 1.330274429f; - - final float zero = 0.0f; - final float one = 1.0f; - final float two = 2.0f; - final float temp4 = 0.2316419f; - - final float oneBySqrt2pi = 0.398942280f; - - float absX = abs(X); - float t = one / (one + temp4 * absX); - - float y = one - oneBySqrt2pi * exp(-X * X / two) * t * (c1 + t * (c2 + t * (c3 + t * (c4 + t * c5)))); - - float result = (X < zero) ? (one - y) : y; - - return result; - } - - /* - * @brief Calculates the call and put prices by using Black Scholes model - * @param s Array of random values of current option price - * @param sigma Array of random values sigma - * @param k Array of random values strike price - * @param t Array of random values of expiration time - * @param r Array of random values of risk free interest rate - * @param width Width of call price or put price array - * @param call Array of calculated call price values - * @param put Array of calculated put price values - */ - @Override public void run() { - float d1, d2; - float phiD1, phiD2; - float sigmaSqrtT; - float KexpMinusRT; - - int gid = getGlobalId(); - float two = 2.0f; - float inRand = randArray[gid]; - float S = S_LOWER_LIMIT * inRand + S_UPPER_LIMIT * (1.0f - inRand); - float K = K_LOWER_LIMIT * inRand + K_UPPER_LIMIT * (1.0f - inRand); - float T = T_LOWER_LIMIT * inRand + T_UPPER_LIMIT * (1.0f - inRand); - float R = R_LOWER_LIMIT * inRand + R_UPPER_LIMIT * (1.0f - inRand); - float sigmaVal = SIGMA_LOWER_LIMIT * inRand + SIGMA_UPPER_LIMIT * (1.0f - inRand); - - sigmaSqrtT = sigmaVal * sqrt(T); - - d1 = (log(S / K) + (R + sigmaVal * sigmaVal / two) * T) / sigmaSqrtT; - d2 = d1 - sigmaSqrtT; - - KexpMinusRT = K * exp(-R * T); - - phiD1 = phi(d1); - phiD2 = phi(d2); - - call[gid] = S * phiD1 - KexpMinusRT * phiD2; - - phiD1 = phi(-d1); - phiD2 = phi(-d2); - - put[gid] = KexpMinusRT * phiD2 - S * phiD1; - } - - private float randArray[]; - - private float put[]; - - private float call[]; - - public BlackScholesKernel(int size) { - randArray = new float[size]; - call = new float[size]; - put = new float[size]; - - for (int i = 0; i < size; i++) { - randArray[i] = i * 1.0f / size; - } - } - - public void showArray(float ary[], String name, int count) { - String line; - line = name + ": "; - for (int i = 0; i < count; i++) { - if (i > 0) - line += ", "; - line += ary[i]; - } - System.out.println(line); - } - - public void showResults(int count) { - showArray(call, "Call Prices", count); - showArray(put, "Put Prices", count); - } - } - - public static void main(String[] _args) throws ClassNotFoundException, InstantiationException, IllegalAccessException { - - int size = Integer.getInteger("size", 512); - Range range = Range.create(size); - int iterations = Integer.getInteger("iterations", 5); - System.out.println("size =" + size); - System.out.println("iterations =" + iterations); - BlackScholesKernel kernel = new BlackScholesKernel(size); - - long totalExecTime = 0; - long iterExecTime = 0; - /* - for (int i = 0; i < iterations; i++) { - iterExecTime = kernel.execute(size).getExecutionTime(); - totalExecTime += iterExecTime; - }*/ - kernel.execute(range, iterations); - System.out.println("Average execution time " + kernel.getAccumulatedExecutionTime() / iterations); - kernel.showResults(10); - - kernel.dispose(); - } - -} diff --git a/samples/convolution/.classpath b/samples/convolution/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/convolution/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/convolution/.project b/samples/convolution/.project deleted file mode 100644 index a304e12f..00000000 --- a/samples/convolution/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - convolution - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/convolution/build.xml b/samples/convolution/build.xml deleted file mode 100644 index 0bf8e643..00000000 --- a/samples/convolution/build.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/convolution/conv.bat b/samples/convolution/conv.bat deleted file mode 100644 index 3d11f2de..00000000 --- a/samples/convolution/conv.bat +++ /dev/null @@ -1,7 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;convolution.jar ^ - com.amd.aparapi.sample.convolution.Convolution %2 - diff --git a/samples/convolution/conv.sh b/samples/convolution/conv.sh deleted file mode 100644 index ae673b3b..00000000 --- a/samples/convolution/conv.sh +++ /dev/null @@ -1,6 +0,0 @@ -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.executionMode=$1\ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:convolution.jar\ - com.amd.aparapi.sample.convolution.Convolution $2 diff --git a/samples/convolution/knight.png b/samples/convolution/knight.png deleted file mode 100644 index 46d06cb4..00000000 Binary files a/samples/convolution/knight.png and /dev/null differ diff --git a/samples/convolution/opencl.bat b/samples/convolution/opencl.bat deleted file mode 100644 index c0ada67f..00000000 --- a/samples/convolution/opencl.bat +++ /dev/null @@ -1,6 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;convolution.jar ^ - com.amd.aparapi.sample.convolution.ConvolutionOpenCL %2 - diff --git a/samples/convolution/pureJava.bat b/samples/convolution/pureJava.bat deleted file mode 100644 index 5699f497..00000000 --- a/samples/convolution/pureJava.bat +++ /dev/null @@ -1,6 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;convolution.jar ^ - com.amd.aparapi.sample.convolution.PureJava %2 - diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvMatrix3x3Editor.java b/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvMatrix3x3Editor.java deleted file mode 100644 index 0d2c0191..00000000 --- a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvMatrix3x3Editor.java +++ /dev/null @@ -1,151 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.convolution; - -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.Arrays; - -import javax.swing.BoxLayout; -import javax.swing.JComboBox; -import javax.swing.JPanel; -import javax.swing.JSpinner; -import javax.swing.SpinnerModel; -import javax.swing.SpinnerNumberModel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -public class ConvMatrix3x3Editor{ - Component component; - - float[] default3x3; - - float[] none3x3 = new float[] { - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0 - }; - - float[] blur3x3 = new float[] { - .1f, - .1f, - .1f, - .1f, - .1f, - .1f, - .1f, - .1f, - .1f - }; - - JSpinner[] spinners = new JSpinner[9]; - - protected void updated(float[] _convMatrix3x3) { - - }; - - void set(float[] _to, float[] _from) { - for (int i = 0; i < 9; i++) { - _to[i] = _from[i]; - spinners[i].setValue((Double) (double) _to[i]); - - } - updated(_to); - } - - ConvMatrix3x3Editor(final float[] _convMatrix3x3) { - default3x3 = Arrays.copyOf(_convMatrix3x3, _convMatrix3x3.length); - JPanel leftPanel = new JPanel(); - JPanel controlPanel = new JPanel(); - BoxLayout layout = new BoxLayout(controlPanel, BoxLayout.Y_AXIS); - controlPanel.setLayout(layout); - component = leftPanel; - JPanel grid3x3Panel = new JPanel(); - controlPanel.add(grid3x3Panel); - grid3x3Panel.setLayout(new GridLayout(3, 3)); - for (int i = 0; i < 9; i++) { - final int index = i; - SpinnerModel model = new SpinnerNumberModel(_convMatrix3x3[index], -50f, 50f, 1f); - JSpinner spinner = new JSpinner(model); - spinners[i] = spinner; - spinner.addChangeListener(new ChangeListener(){ - public void stateChanged(ChangeEvent ce) { - JSpinner source = (JSpinner) ce.getSource(); - double value = ((Double) source.getValue()); - _convMatrix3x3[index] = (float) value; - updated(_convMatrix3x3); - } - }); - grid3x3Panel.add(spinner); - } - String[] options = new String[] { - "DEFAULT", - "NONE", - "BLUR" - }; - JComboBox combo = new JComboBox(options); - combo.addActionListener(new ActionListener(){ - - @Override public void actionPerformed(ActionEvent e) { - JComboBox cb = (JComboBox) e.getSource(); - String value = (String) cb.getSelectedItem(); - if (value.equals("DEFAULT")) { - set(_convMatrix3x3, default3x3); - } else if (value.equals("NONE")) { - set(_convMatrix3x3, none3x3); - } else if (value.equals("BLUR")) { - set(_convMatrix3x3, blur3x3); - } - } - - }); - controlPanel.add(combo); - - leftPanel.add(controlPanel, BorderLayout.NORTH); - } -} diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java b/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java deleted file mode 100644 index 4a7b0883..00000000 --- a/samples/convolution/src/com/amd/aparapi/sample/convolution/Convolution.java +++ /dev/null @@ -1,116 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.convolution; - -import java.io.File; - -import com.amd.aparapi.Kernel; - -public class Convolution{ - - final static class ImageConvolution extends Kernel{ - private float convMatrix3x3[]; - - private int width, height; - - private byte imageIn[], imageOut[]; - - public void processPixel(int x, int y, int w, int h) { - float accum = 0f; - int count = 0; - for (int dx = -3; dx < 6; dx += 3) { - for (int dy = -1; dy < 2; dy += 1) { - int rgb = 0xff & imageIn[((y + dy) * w) + (x + dx)]; - - accum += rgb * convMatrix3x3[count++]; - } - } - byte value = (byte) (max(0, min((int) accum, 255))); - imageOut[y * w + x] = value; - - } - - @Override public void run() { - int x = getGlobalId(0) % (width * 3); - int y = getGlobalId(0) / (width * 3); - - if (x > 3 && x < (width * 3 - 3) && y > 1 && y < (height - 1)) { - processPixel(x, y, width * 3, height); - } - - } - - public void applyConvolution(float[] _convMatrix3x3, byte[] _imageIn, byte[] _imageOut, int _width, int _height) { - imageIn = _imageIn; - imageOut = _imageOut; - width = _width; - height = _height; - convMatrix3x3 = _convMatrix3x3; - execute(3 * width * height); - } - - } - - public static void main(final String[] _args) { - File file = new File(_args.length == 1 ? _args[0] : "testcard.jpg"); - - final ImageConvolution convolution = new ImageConvolution(); - - float convMatrix3x3[] = new float[] { - 0f, - -10f, - 0f, - -10f, - 40f, - -10f, - 0f, - -10f, - 0f, - }; - - new ConvolutionViewer(file, convMatrix3x3){ - @Override protected void applyConvolution(float[] _convMatrix3x3, byte[] _inBytes, byte[] _outBytes, int _width, - int _height) { - convolution.applyConvolution(_convMatrix3x3, _inBytes, _outBytes, _width, _height); - } - }; - - } - -} diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionOpenCL.java b/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionOpenCL.java deleted file mode 100644 index 57f96b06..00000000 --- a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionOpenCL.java +++ /dev/null @@ -1,92 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.convolution; - -import java.io.File; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; - -public class ConvolutionOpenCL{ - - @Resource("com/amd/aparapi/sample/convolution/convolution.cl") interface Convolution extends OpenCL{ - Convolution applyConvolution(// - Range range, // - @GlobalReadOnly("_convMatrix3x3") float[] _convMatrix3x3,//// only read from kernel - @GlobalReadOnly("_imagIn") byte[] _imageIn,// only read from kernel (actually char[]) - @GlobalWriteOnly("_imagOut") byte[] _imageOut, // only written to (never read) from kernel (actually char[]) - @Arg("_width") int _width,// - @Arg("_height") int _height); - } - - public static void main(final String[] _args) { - final File file = new File(_args.length == 1 ? _args[0] : "testcard.jpg"); - - final OpenCLDevice openclDevice = (OpenCLDevice) Device.best(); - - final Convolution convolution = openclDevice.bind(Convolution.class); - final float convMatrix3x3[] = new float[] { - 0f, - -10f, - 0f, - -10f, - 40f, - -10f, - 0f, - -10f, - 0f, - }; - - new ConvolutionViewer(file, convMatrix3x3){ - Range range = null; - - @Override protected void applyConvolution(float[] _convMatrix3x3, byte[] _inBytes, byte[] _outBytes, int _width, - int _height) { - if (range == null) { - range = openclDevice.createRange(_width * _height * 3); - } - - convolution.applyConvolution(range, _convMatrix3x3, _inBytes, _outBytes, _width, _height); - } - }; - } -} diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionViewer.java b/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionViewer.java deleted file mode 100644 index 059c202f..00000000 --- a/samples/convolution/src/com/amd/aparapi/sample/convolution/ConvolutionViewer.java +++ /dev/null @@ -1,131 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.convolution; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferByte; -import java.io.File; -import java.io.IOException; - -import javax.imageio.ImageIO; -import javax.swing.ImageIcon; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.WindowConstants; - -@SuppressWarnings("serial") public abstract class ConvolutionViewer extends JFrame{ - - private int height; - - private int width; - - private BufferedImage outputImage; - - private BufferedImage inputImage; - - private byte[] inBytes; - - private byte[] outBytes; - - private Graphics2D gc; - - private float[] convMatrix3x3; - - public ConvolutionViewer(File _file, float[] _convMatrix3x3) { - - JFrame frame = new JFrame("Convolution Viewer"); - - convMatrix3x3 = _convMatrix3x3; - try { - inputImage = ImageIO.read(_file); - - // System.out.println(inputImage); - - height = inputImage.getHeight(); - - width = inputImage.getWidth(); - - outputImage = new BufferedImage(width, height, inputImage.getType()); - - gc = outputImage.createGraphics(); - - inBytes = ((DataBufferByte) inputImage.getRaster().getDataBuffer()).getData(); - outBytes = ((DataBufferByte) outputImage.getRaster().getDataBuffer()).getData(); - - final JLabel imageLabel = new JLabel(); - imageLabel.setIcon(new ImageIcon(outputImage)); - - ConvMatrix3x3Editor editor = new ConvMatrix3x3Editor(_convMatrix3x3){ - @Override protected void updated(float[] _convMatrix3x3) { - convMatrix3x3 = _convMatrix3x3; - long start = System.currentTimeMillis(); - - applyConvolution(convMatrix3x3, inBytes, outBytes, width, height); - long end = System.currentTimeMillis(); - gc.setColor(Color.BLACK); - gc.fillRect(0, 0, 50, 40); - gc.setColor(Color.YELLOW); - gc.drawString("" + (end - start) + "ms", 10, 20); - - imageLabel.repaint(); - } - }; - frame.getContentPane().add(editor.component, BorderLayout.WEST); - - frame.getContentPane().add(imageLabel, BorderLayout.CENTER); - frame.pack(); - frame.setVisible(true); - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - - applyConvolution(convMatrix3x3, inBytes, outBytes, width, height); - - imageLabel.repaint(); - } catch (IOException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - - } - - abstract protected void applyConvolution(float[] convMatrix3x3, byte[] _inBytes, byte[] _outBytes, int _width, int _height); - -} diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/PureJava.java b/samples/convolution/src/com/amd/aparapi/sample/convolution/PureJava.java deleted file mode 100644 index 5c0158df..00000000 --- a/samples/convolution/src/com/amd/aparapi/sample/convolution/PureJava.java +++ /dev/null @@ -1,117 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.convolution; - -import java.io.File; - -import com.amd.aparapi.Kernel; - -public class PureJava{ - - final static class ImageConvolution extends Kernel{ - private float convMatrix3x3[]; - - private int width, height; - - private byte imageIn[], imageOut[]; - - public void processPixel(int x, int y, int w, int h) { - float accum = 0f; - int count = 0; - for (int dx = -3; dx < 6; dx += 3) { - for (int dy = -1; dy < 2; dy += 1) { - int rgb = 0xff & imageIn[((y + dy) * w) + (x + dx)]; - - accum += rgb * convMatrix3x3[count++]; - } - } - byte value = (byte) (max(0, min((int) accum, 255))); - imageOut[y * w + x] = value; - - } - - @Override public void run() { - int x = getGlobalId(0) % (width * 3); - int y = getGlobalId(0) / (width * 3); - - if (x > 3 && x < (width * 3 - 3) && y > 1 && y < (height - 1)) { - processPixel(x, y, width * 3, height); - } - - } - - public void applyConvolution(float[] _convMatrix3x3, byte[] _imageIn, byte[] _imageOut, int _width, int _height) { - imageIn = _imageIn; - imageOut = _imageOut; - width = _width; - height = _height; - convMatrix3x3 = _convMatrix3x3; - - execute(3 * width * height); - } - - } - - public static void main(final String[] _args) { - File file = new File(_args.length == 1 ? _args[0] : "testcard.jpg"); - - final ImageConvolution convolution = new ImageConvolution(); - - float convMatrix3x3[] = new float[] { - 0f, - -10f, - 0f, - -10f, - 40f, - -10f, - 0f, - -10f, - 0f, - }; - - new ConvolutionViewer(file, convMatrix3x3){ - @Override protected void applyConvolution(float[] _convMatrix3x3, byte[] _inBytes, byte[] _outBytes, int _width, - int _height) { - convolution.applyConvolution(_convMatrix3x3, _inBytes, _outBytes, _width, _height); - } - }; - - } - -} diff --git a/samples/convolution/src/com/amd/aparapi/sample/convolution/convolution.cl b/samples/convolution/src/com/amd/aparapi/sample/convolution/convolution.cl deleted file mode 100644 index e1acfa8f..00000000 --- a/samples/convolution/src/com/amd/aparapi/sample/convolution/convolution.cl +++ /dev/null @@ -1,28 +0,0 @@ -void processPixel(__global float* _convMatrix3x3, __global char* _imageIn, __global char* _imageOut, int _width, int _height, int _x, int _y){ - float accum = 0.0f; - int count = 0; - for (int dx = -3; dx<6; dx+=3){ - for (int dy = -1; dy<2; dy++){ - int rgb = 0xff & _imageIn[(((_y + dy) * _width) + (_x + dx))]; - accum = accum + ((float)rgb * _convMatrix3x3[count++]); - } - } - char value = (char )max(0, min((int)accum, 255)); - _imageOut[(_y * _width) + _x] = value; - return; -} - -__kernel void applyConvolution( - __global float *_convMatrix3x3, // only read from kernel - __global char *_imageIn, // only read from kernel - __global char *_imageOut, // only written to (never read) from kernel - int _width, - int _height -){ - int x = get_global_id(0) % (_width * 3); - int y = get_global_id(0) / (_width * 3); - if (x>3 && x<((_width * 3) - 3) && y>1 && y<(_height - 1)){ - processPixel(_convMatrix3x3, _imageIn, _imageOut, _width*3, _height, x, y); - } -} - diff --git a/samples/convolution/testcard.jpg b/samples/convolution/testcard.jpg deleted file mode 100644 index 16b1a709..00000000 Binary files a/samples/convolution/testcard.jpg and /dev/null differ diff --git a/samples/extension/.classpath b/samples/extension/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/extension/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/extension/.project b/samples/extension/.project deleted file mode 100644 index 1e2c59dc..00000000 --- a/samples/extension/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - extension - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/extension/build.xml b/samples/extension/build.xml deleted file mode 100644 index a89c798f..00000000 --- a/samples/extension/build.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/extension/fft.bat b/samples/extension/fft.bat deleted file mode 100644 index fe645429..00000000 --- a/samples/extension/fft.bat +++ /dev/null @@ -1,9 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;extension.jar ^ - com.amd.aparapi.sample.extension.FFTExample - - diff --git a/samples/extension/histo.bat b/samples/extension/histo.bat deleted file mode 100644 index e7df7760..00000000 --- a/samples/extension/histo.bat +++ /dev/null @@ -1,7 +0,0 @@ -java ^ - -Xmx1024M^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;extension.jar ^ - com.amd.aparapi.sample.extension.Histogram - - diff --git a/samples/extension/histo.sh b/samples/extension/histo.sh deleted file mode 100644 index 6d7a3dbd..00000000 --- a/samples/extension/histo.sh +++ /dev/null @@ -1,4 +0,0 @@ -java\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:extension.jar\ - com.amd.aparapi.sample.extension.Histogram diff --git a/samples/extension/histoideal.bat b/samples/extension/histoideal.bat deleted file mode 100644 index 7b66486f..00000000 --- a/samples/extension/histoideal.bat +++ /dev/null @@ -1,7 +0,0 @@ -java ^ - -Xmx1024M^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;extension.jar ^ - com.amd.aparapi.sample.extension.HistogramIdeal - - diff --git a/samples/extension/mandel.bat b/samples/extension/mandel.bat deleted file mode 100644 index 7cbefb99..00000000 --- a/samples/extension/mandel.bat +++ /dev/null @@ -1,9 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;extension.jar ^ - com.amd.aparapi.sample.extension.MandelExample - - diff --git a/samples/extension/mandel.sh b/samples/extension/mandel.sh deleted file mode 100644 index d593465d..00000000 --- a/samples/extension/mandel.sh +++ /dev/null @@ -1,5 +0,0 @@ -java\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.executionMode=$1\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:extension.jar\ - com.amd.aparapi.sample.extension.MandelExample diff --git a/samples/extension/square.bat b/samples/extension/square.bat deleted file mode 100644 index 01fd7b2a..00000000 --- a/samples/extension/square.bat +++ /dev/null @@ -1,9 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;extension.jar ^ - com.amd.aparapi.sample.extension.SquareExample - - diff --git a/samples/extension/square.sh b/samples/extension/square.sh deleted file mode 100644 index 5fe1266a..00000000 --- a/samples/extension/square.sh +++ /dev/null @@ -1,5 +0,0 @@ -java\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.executionMode=$1\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:extension.jar\ - com.amd.aparapi.sample.extension.SquareExample diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/FFTExample.java b/samples/extension/src/com/amd/aparapi/sample/extension/FFTExample.java deleted file mode 100644 index 9284fa50..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/FFTExample.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.amd.aparapi.sample.extension; - -import java.util.Arrays; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; - -public class FFTExample{ - - @Resource("com/amd/aparapi/sample/extension/fft.cl") interface FFT extends OpenCL{ - - public FFT forward(// - Range _range,// - @GlobalReadWrite("real") float[] real,// - @GlobalReadWrite("imaginary") float[] imaginary// - ); - } - - static void fft(float[] x, float[] y) { - final short dir = 1; - final long m = 10; - int n, i, i1, j, k, i2, l, l1, l2; - double c1, c2, tx, ty, t1, t2, u1, u2, z; - - /* Calculate the number of points */ - n = 1; - for (i = 0; i < m; i++) { - n *= 2; - } - - /* Do the bit reversal */ - i2 = n >> 1; - j = 0; - for (i = 0; i < (n - 1); i++) { - if (i < j) { - tx = x[i]; - ty = y[i]; - x[i] = x[j]; - y[i] = y[j]; - x[j] = (float) tx; - y[j] = (float) ty; - } - k = i2; - while (k <= j) { - j -= k; - k >>= 1; - } - j += k; - } - - /* Compute the FFT */ - c1 = -1.0; - c2 = 0.0; - l2 = 1; - for (l = 0; l < m; l++) { - l1 = l2; - l2 <<= 1; - u1 = 1.0; - u2 = 0.0; - for (j = 0; j < l1; j++) { - for (i = j; i < n; i += l2) { - i1 = i + l1; - t1 = (u1 * x[i1]) - (u2 * y[i1]); - t2 = (u1 * y[i1]) + (u2 * x[i1]); - x[i1] = (float) (x[i] - t1); - y[i1] = (float) (y[i] - t2); - x[i] += (float) t1; - y[i] += (float) t2; - } - z = (u1 * c1) - (u2 * c2); - u2 = (u1 * c2) + (u2 * c1); - u1 = z; - } - c2 = Math.sqrt((1.0 - c1) / 2.0); - if (dir == 1) { - c2 = -c2; - } - c1 = Math.sqrt((1.0 + c1) / 2.0); - } - - /* Scaling for forward transform */ - /*if (dir == 1) { - for (i=0;i 0.01) { - System.out.printf("%d %5.2f %5.2f %5.2f\n", i, initial[i], real[i], referenceReal[i]); - } - } - - } -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/Histogram.java b/samples/extension/src/com/amd/aparapi/sample/extension/Histogram.java deleted file mode 100644 index 54b06c3b..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/Histogram.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.amd.aparapi.sample.extension; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; - -public class Histogram{ - - @Resource("com/amd/aparapi/sample/extension/HistogramKernel.cl") interface HistogramKernel extends OpenCL{ - - public HistogramKernel histogram256(// - Range _range,// - @GlobalReadOnly("data") byte[] data,// - @Local("sharedArray") byte[] sharedArray,// - @GlobalWriteOnly("binResult") int[] binResult,// - @Arg("binSize") int binSize); - - public HistogramKernel bin256(// - Range _range,// - @GlobalWriteOnly("histo") int[] histo,// - @GlobalReadOnly("binResult") int[] binResult,// - @Arg("subHistogramSize") int subHistogramSize); - } - - public static void main(String[] args) { - final int WIDTH = 1024 * 16; - final int HEIGHT = 1024 * 8; - final int BIN_SIZE = 128; - final int GROUP_SIZE = 128; - final int SUB_HISTOGRAM_COUNT = ((WIDTH * HEIGHT) / (GROUP_SIZE * BIN_SIZE)); - - final byte[] data = new byte[WIDTH * HEIGHT]; - for (int i = 0; i < (WIDTH * HEIGHT); i++) { - data[i] = (byte) ((Math.random() * BIN_SIZE) / 2); - } - final byte[] sharedArray = new byte[GROUP_SIZE * BIN_SIZE]; - final int[] binResult = new int[SUB_HISTOGRAM_COUNT * BIN_SIZE]; - System.out.println("binResult size=" + binResult.length); - final int[] histo = new int[BIN_SIZE]; - final int[] refHisto = new int[BIN_SIZE]; - final Device device = Device.firstGPU(); - final Kernel k = new Kernel(){ - - @Override public void run() { - final int j = getGlobalId(0); - for (int i = 0; i < SUB_HISTOGRAM_COUNT; ++i) { - histo[j] += binResult[(i * BIN_SIZE) + j]; - } - } - - }; - final Range range2 = device.createRange(BIN_SIZE); - k.execute(range2); - - final Range range = Range.create((WIDTH * HEIGHT) / BIN_SIZE, GROUP_SIZE); - - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - final HistogramKernel histogram = openclDevice.bind(HistogramKernel.class); - - final StopWatch timer = new StopWatch(); - timer.start(); - - histogram.histogram256(range, data, sharedArray, binResult, BIN_SIZE); - final boolean java = false; - final boolean aparapiKernel = false; - if (java) { - // Calculate final histogram bin - for (int j = 0; j < BIN_SIZE; ++j) { - for (int i = 0; i < SUB_HISTOGRAM_COUNT; ++i) { - histo[j] += binResult[(i * BIN_SIZE) + j]; - } - } - } else if (aparapiKernel) { - k.execute(range2); - } else { - histogram.bin256(range2, histo, binResult, SUB_HISTOGRAM_COUNT); - } - timer.print("opencl"); - timer.start(); - for (int i = 0; i < (WIDTH * HEIGHT); i++) { - refHisto[data[i]]++; - } - timer.print("java"); - for (int i = 0; i < 128; i++) { - if (refHisto[i] != histo[i]) { - System.out.println(i + " " + histo[i] + " " + refHisto[i]); - } - } - } - } -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/HistogramIdeal.java b/samples/extension/src/com/amd/aparapi/sample/extension/HistogramIdeal.java deleted file mode 100644 index 1ff76e9f..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/HistogramIdeal.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.amd.aparapi.sample.extension; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; - -public class HistogramIdeal{ - - // @Resource("com/amd/aparapi/sample/extension/HistogramKernel.cl") - interface HistogramKernel extends OpenCL{ - - public HistogramKernel histogram256(// - Range _range,// - @GlobalReadOnly("data") byte[] data,// - @Local("sharedArray") byte[] sharedArray,// - @GlobalWriteOnly("binResult") int[] binResult,// - @Arg("binSize") int binSize); - - public HistogramKernel bin256(// - Range _range,// - @GlobalWriteOnly("histo") int[] histo,// - @GlobalReadOnly("binResult") int[] binResult,// - @Arg("subHistogramSize") int subHistogramSize); - } - - public static void main(String[] args) { - final int WIDTH = 1024 * 16; - final int HEIGHT = 1024 * 8; - final int BIN_SIZE = 128; - final int GROUP_SIZE = 128; - final int SUB_HISTOGRAM_COUNT = ((WIDTH * HEIGHT) / (GROUP_SIZE * BIN_SIZE)); - - final byte[] data = new byte[WIDTH * HEIGHT]; - for (int i = 0; i < (WIDTH * HEIGHT); i++) { - data[i] = (byte) ((Math.random() * BIN_SIZE) / 2); - } - final byte[] sharedArray = new byte[GROUP_SIZE * BIN_SIZE]; - final int[] binResult = new int[SUB_HISTOGRAM_COUNT * BIN_SIZE]; - System.out.println("binResult size=" + binResult.length); - final int[] histo = new int[BIN_SIZE]; - final int[] refHisto = new int[BIN_SIZE]; - final Device device = Device.best(); - - if (device != null) { - System.out.println(((OpenCLDevice) device).getOpenCLPlatform().getName()); - final Range rangeBinSize = device.createRange(BIN_SIZE); - - final Range range = Range.create((WIDTH * HEIGHT) / BIN_SIZE, GROUP_SIZE); - - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - final HistogramKernel histogram = openclDevice.bind(HistogramKernel.class, Histogram.class.getClassLoader() - .getResourceAsStream("com/amd/aparapi/sample/extension/HistogramKernel.cl")); - long start = System.nanoTime(); - histogram.begin()// - .put(data)// - .histogram256(range, data, sharedArray, binResult, BIN_SIZE)// - // by leaving binResult on the GPU we can save two 1Mb transfers - .bin256(rangeBinSize, histo, binResult, SUB_HISTOGRAM_COUNT)// - .get(histo)// - .end(); - System.out.println("opencl " + ((System.nanoTime() - start) / 1000000)); - start = System.nanoTime(); - for (int i = 0; i < (WIDTH * HEIGHT); i++) { - refHisto[data[i]]++; - } - System.out.println("java " + ((System.nanoTime() - start) / 1000000)); - for (int i = 0; i < 128; i++) { - if (refHisto[i] != histo[i]) { - System.out.println(i + " " + histo[i] + " " + refHisto[i]); - } - } - - } - } else { - System.out.println("no GPU device"); - } - } -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/HistogramKernel.cl b/samples/extension/src/com/amd/aparapi/sample/extension/HistogramKernel.cl deleted file mode 100644 index aaa5c154..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/HistogramKernel.cl +++ /dev/null @@ -1,166 +0,0 @@ -/* ============================================================ - -Copyright (c) 2009-2010 Advanced Micro Devices, Inc. All rights reserved. - -Redistribution and use of this material is permitted under the following -conditions: - -Redistributions must retain the above copyright notice and all terms of this -license. - -In no event shall anyone redistributing or accessing or using this material -commence or participate in any arbitration or legal action relating to this -material against Advanced Micro Devices, Inc. or any copyright holders or -contributors. The foregoing shall survive any expiration or termination of -this license or any agreement or access or use related to this material. - -ANY BREACH OF ANY TERM OF THIS LICENSE SHALL RESULT IN THE IMMEDIATE REVOCATION -OF ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE THIS MATERIAL. - -THIS MATERIAL IS PROVIDED BY ADVANCED MICRO DEVICES, INC. AND ANY COPYRIGHT -HOLDERS AND CONTRIBUTORS "AS IS" IN ITS CURRENT CONDITION AND WITHOUT ANY -REPRESENTATIONS, GUARANTEE, OR WARRANTY OF ANY KIND OR IN ANY WAY RELATED TO -SUPPORT, INDEMNITY, ERROR FREE OR UNINTERRUPTED OPERA TION, OR THAT IT IS FREE -FROM DEFECTS OR VIRUSES. ALL OBLIGATIONS ARE HEREBY DISCLAIMED - WHETHER -EXPRESS, IMPLIED, OR STATUTORY - INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED -WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -ACCURACY, COMPLETENESS, OPERABILITY, QUALITY OF SERVICE, OR NON-INFRINGEMENT. -IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, REVENUE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED OR BASED ON ANY THEORY OF LIABILITY -ARISING IN ANY WAY RELATED TO THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY -OF SUCH DAMAGE. THE ENTIRE AND AGGREGATE LIABILITY OF ADVANCED MICRO DEVICES, -INC. AND ANY COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT EXCEED TEN DOLLARS -(US $10.00). ANYONE REDISTRIBUTING OR ACCESSING OR USING THIS MATERIAL ACCEPTS -THIS ALLOCATION OF RISK AND AGREES TO RELEASE ADVANCED MICRO DEVICES, INC. AND -ANY COPYRIGHT HOLDERS AND CONTRIBUTORS FROM ANY AND ALL LIABILITIES, -OBLIGATIONS, CLAIMS, OR DEMANDS IN EXCESS OF TEN DOLLARS (US $10.00). THE -FOREGOING ARE ESSENTIAL TERMS OF THIS LICENSE AND, IF ANY OF THESE TERMS ARE -CONSTRUED AS UNENFORCEABLE, FAIL IN ESSENTIAL PURPOSE, OR BECOME VOID OR -DETRIMENTAL TO ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR -CONTRIBUTORS FOR ANY REASON, THEN ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE -THIS MATERIAL SHALL TERMINATE IMMEDIATELY. MOREOVER, THE FOREGOING SHALL -SURVIVE ANY EXPIRATION OR TERMINATION OF THIS LICENSE OR ANY AGREEMENT OR -ACCESS OR USE RELATED TO THIS MATERIAL. - -NOTICE IS HEREBY PROVIDED, AND BY REDISTRIBUTING OR ACCESSING OR USING THIS -MATERIAL SUCH NOTICE IS ACKNOWLEDGED, THAT THIS MATERIAL MAY BE SUBJECT TO -RESTRICTIONS UNDER THE LAWS AND REGULATIONS OF THE UNITED STATES OR OTHER -COUNTRIES, WHICH INCLUDE BUT ARE NOT LIMITED TO, U.S. EXPORT CONTROL LAWS SUCH -AS THE EXPORT ADMINISTRATION REGULATIONS AND NATIONAL SECURITY CONTROLS AS -DEFINED THEREUNDER, AS WELL AS STATE DEPARTMENT CONTROLS UNDER THE U.S. -MUNITIONS LIST. THIS MATERIAL MAY NOT BE USED, RELEASED, TRANSFERRED, IMPORTED, -EXPORTED AND/OR RE-EXPORTED IN ANY MANNER PROHIBITED UNDER ANY APPLICABLE LAWS, -INCLUDING U.S. EXPORT CONTROL LAWS REGARDING SPECIFICALLY DESIGNATED PERSONS, -COUNTRIES AND NATIONALS OF COUNTRIES SUBJECT TO NATIONAL SECURITY CONTROLS. -MOREOVER, THE FOREGOING SHALL SURVIVE ANY EXPIRATION OR TERMINATION OF ANY -LICENSE OR AGREEMENT OR ACCESS OR USE RELATED TO THIS MATERIAL. - -NOTICE REGARDING THE U.S. GOVERNMENT AND DOD AGENCIES: This material is -provided with "RESTRICTED RIGHTS" and/or "LIMITED RIGHTS" as applicable to -computer software and technical data, respectively. Use, duplication, -distribution or disclosure by the U.S. Government and/or DOD agencies is -subject to the full extent of restrictions in all applicable regulations, -including those found at FAR52.227 and DFARS252.227 et seq. and any successor -regulations thereof. Use of this material by the U.S. Government and/or DOD -agencies is acknowledgment of the proprietary rights of any copyright holders -and contributors, including those of Advanced Micro Devices, Inc., as well as -the provisions of FAR52.227-14 through 23 regarding privately developed and/or -commercial computer software. - -This license forms the entire agreement regarding the subject matter hereof and -supersedes all proposals and prior discussions and writings between the parties -with respect thereto. This license does not affect any ownership, rights, title, -or interest in, or relating to, this material. No terms of this license can be -modified or waived, and no breach of this license can be excused, unless done -so in a writing signed by all affected parties. Each term of this license is -separately enforceable. If any term of this license is determined to be or -becomes unenforceable or illegal, such term shall be reformed to the minimum -extent necessary in order for this license to remain in effect in accordance -with its terms as modified by such reformation. This license shall be governed -by and construed in accordance with the laws of the State of Texas without -regard to rules on conflicts of law of any state or jurisdiction or the United -Nations Convention on the International Sale of Goods. All disputes arising out -of this license shall be subject to the jurisdiction of the federal and state -courts in Austin, Texas, and all defenses are hereby waived concerning personal -jurisdiction and venue of these courts. - -============================================================ */ - -/* - * For a description of the algorithm and the terms used, please see the - * documentation for this sample. - * - * On invocation of kernel blackScholes, each work thread calculates - * thread-histogram bin and finally all thread-histograms merged into - * block-histogram bin. Outside the kernel, All block-histograms merged - * into final histogram - */ - -#define LINEAR_MEM_ACCESS -#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable - - - -/** - * @brief Calculates block-histogram bin whose bin size is 256 - * @param data input data pointer - * @param sharedArray shared array for thread-histogram bins - * @param binResult block-histogram array - */ -__kernel -void histogram256(__global const uchar* data, - __local uchar* sharedArray, - __global uint* binResult, - uint binSize) -{ - size_t localId = get_local_id(0); - size_t globalId = get_global_id(0); - size_t groupId = get_group_id(0); - size_t groupSize = get_local_size(0); - - /* initialize shared array to zero */ - for(int i = 0; i < binSize; ++i) - sharedArray[localId * binSize + i] = 0; - - barrier(CLK_LOCAL_MEM_FENCE); - - /* calculate thread-histograms */ - for(int i = 0; i < binSize; ++i) - { -#ifdef LINEAR_MEM_ACCESS - uchar value = data[groupId * groupSize * binSize + i * groupSize + localId]; -#else - uchar value = data[globalId * binSize + i]; -#endif // LINEAR_MEM_ACCESS - sharedArray[localId * binSize + value]++; - } - - barrier(CLK_LOCAL_MEM_FENCE); - - /* merge all thread-histograms into block-histogram */ - for(int i = 0; i < binSize / groupSize; ++i) - { - uint binCount = 0; - for(int j = 0; j < groupSize; ++j) - binCount += sharedArray[j * binSize + i * groupSize + localId]; - - binResult[groupId * binSize + i * groupSize + localId] = binCount; - } -} - -__kernel -void bin256(__global uint* histo, - __global const uint* binResult, - uint subHistogramSize ) -{ - size_t j = get_local_id(0); - size_t binSize=get_global_size(0); - uint histValue=0; - for(int i = 0; i < subHistogramSize; ++i){ - histValue += binResult[i * binSize + j]; - } - histo[j]=histValue; -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/MandelExample.java b/samples/extension/src/com/amd/aparapi/sample/extension/MandelExample.java deleted file mode 100644 index ba2d20ac..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/MandelExample.java +++ /dev/null @@ -1,504 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.extension; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; -import java.util.concurrent.BrokenBarrierException; -import java.util.concurrent.CyclicBarrier; - -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.opencl.OpenCLPlatform; -import com.amd.aparapi.internal.util.OpenCLUtil; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; -import com.amd.aparapi.opencl.OpenCLAdapter; - -/** - * An example Aparapi application which displays a view of the Mandelbrot set and lets the user zoom in to a particular point. - * - * When the user clicks on the view, this example application will zoom in to the clicked point and zoom out there after. - * On GPU, additional computing units will offer a better viewing experience. On the other hand on CPU, this example - * application might suffer with sub-optimal frame refresh rate as compared to GPU. - * - * @author gfrost - * - */ - -@Resource("com/amd/aparapi/sample/extension/mandel2.cl") interface MandelBrot extends OpenCL{ - MandelBrot createMandleBrot(// - Range range,// - @Arg("scale") float scale, // - @Arg("offsetx") float offsetx, // - @Arg("offsety") float offsety, // - @GlobalWriteOnly("rgb") int[] rgb); -} - -class JavaMandelBrot extends OpenCLAdapter implements MandelBrot{ - final int MAX_ITERATIONS = 64; - - final int pallette[] = new int[] { - -65536, - -59392, - -53248, - -112640, - -106752, - -166144, - -160256, - -219904, - -279552, - -339200, - -399104, - -985344, - -2624000, - -4197376, - -5770496, - -7343872, - -8851712, - -10425088, - -11932928, - -13375232, - -14817792, - -16260096, - -16719602, - -16720349, - -16721097, - -16721846, - -16722595, - -16723345, - -16724351, - -16725102, - -16726110, - -16727119, - -16728129, - -16733509, - -16738889, - -16744269, - -16749138, - -16754006, - -16758619, - -16762976, - -16767077, - -16771178, - -16774767, - -16514932, - -15662970, - -14942079, - -14221189, - -13631371, - -13107088, - -12648342, - -12320669, - -11992995, - -11796393, - -11665328, - -11993019, - -12386248, - -12845011, - -13303773, - -13762534, - -14286830, - -14745588, - -15269881, - -15728637, - -16252927, - 0 - }; - - @Override public MandelBrot createMandleBrot(Range range, float scale, float offsetx, float offsety, int[] rgb) { - - final int width = range.getGlobalSize(0); - final int height = range.getGlobalSize(1); - for (int gridy = 0; gridy < height; gridy++) { - for (int gridx = 0; gridx < width; gridx++) { - final float x = ((((gridx) * scale) - ((scale / 2.0f) * width)) / width) + offsetx; - final float y = ((((gridy) * scale) - ((scale / 2.0f) * height)) / height) + offsety; - int count = 0; - float zx = x; - float zy = y; - float new_zx = 0.0f; - for (; (count < MAX_ITERATIONS) && (((zx * zx) + (zy * zy)) < 8.0f); count++) { - new_zx = ((zx * zx) - (zy * zy)) + x; - zy = ((2.0f * zx) * zy) + y; - zx = new_zx; - } - rgb[gridx + (gridy * width)] = pallette[count]; - - } - } - return (this); - } - -} - -class JavaMandelBrotMultiThread extends OpenCLAdapter implements MandelBrot{ - final int MAX_ITERATIONS = 64; - - final int pallette[] = new int[] { - -65536, - -59392, - -53248, - -112640, - -106752, - -166144, - -160256, - -219904, - -279552, - -339200, - -399104, - -985344, - -2624000, - -4197376, - -5770496, - -7343872, - -8851712, - -10425088, - -11932928, - -13375232, - -14817792, - -16260096, - -16719602, - -16720349, - -16721097, - -16721846, - -16722595, - -16723345, - -16724351, - -16725102, - -16726110, - -16727119, - -16728129, - -16733509, - -16738889, - -16744269, - -16749138, - -16754006, - -16758619, - -16762976, - -16767077, - -16771178, - -16774767, - -16514932, - -15662970, - -14942079, - -14221189, - -13631371, - -13107088, - -12648342, - -12320669, - -11992995, - -11796393, - -11665328, - -11993019, - -12386248, - -12845011, - -13303773, - -13762534, - -14286830, - -14745588, - -15269881, - -15728637, - -16252927, - 0 - }; - - @Override public MandelBrot createMandleBrot(final Range range, final float scale, final float offsetx, final float offsety, - final int[] rgb) { - - final int width = range.getGlobalSize(0); - final int height = range.getGlobalSize(1); - final int threadCount = 8; - final Thread[] threads = new Thread[threadCount]; - final CyclicBarrier barrier = new CyclicBarrier(threadCount + 1); - for (int thread = 0; thread < threadCount; thread++) { - final int threadId = thread; - final int groupHeight = height / threadCount; - (threads[threadId] = new Thread(new Runnable(){ - @Override public void run() { - for (int gridy = threadId * groupHeight; gridy < ((threadId + 1) * groupHeight); gridy++) { - for (int gridx = 0; gridx < width; gridx++) { - final float x = ((((gridx) * scale) - ((scale / 2.0f) * width)) / width) + offsetx; - final float y = ((((gridy) * scale) - ((scale / 2.0f) * height)) / height) + offsety; - int count = 0; - float zx = x; - float zy = y; - float new_zx = 0.0f; - for (; (count < MAX_ITERATIONS) && (((zx * zx) + (zy * zy)) < 8.0f); count++) { - new_zx = ((zx * zx) - (zy * zy)) + x; - zy = ((2.0f * zx) * zy) + y; - zx = new_zx; - } - rgb[gridx + (gridy * width)] = pallette[count]; - } - } - try { - barrier.await(); - } catch (final InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final BrokenBarrierException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - })).start(); - } - try { - barrier.await(); - } catch (final InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (final BrokenBarrierException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return (this); - } - -} - -public class MandelExample{ - - /** User selected zoom-in point on the Mandelbrot view. */ - public static volatile Point to = null; - - public static MandelBrot mandelBrot = null; - - public static MandelBrot gpuMandelBrot = null; - - public static MandelBrot javaMandelBrot = null; - - public static MandelBrot javaMandelBrotMultiThread = null; - - // new JavaMandelBrot(); - //new JavaMandelBrotMultiThread(); - @SuppressWarnings("serial") public static void main(String[] _args) { - - final JFrame frame = new JFrame("MandelBrot"); - - /** Width of Mandelbrot view. */ - final int width = 768; - - /** Height of Mandelbrot view. */ - final int height = 768; - - /** Mandelbrot image height. */ - - /** Image for Mandelbrot view. */ - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - - final Object framePaintedDoorBell = new Object(); - final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - - g.drawImage(image, 0, 0, width, height, this); - synchronized (framePaintedDoorBell) { - framePaintedDoorBell.notify(); - } - } - }; - - // Set the size of JComponent which displays Mandelbrot image - viewer.setPreferredSize(new Dimension(width, height)); - - final Object userClickDoorBell = new Object(); - - // Mouse listener which reads the user clicked zoom-in point on the Mandelbrot view - viewer.addMouseListener(new MouseAdapter(){ - @Override public void mouseClicked(MouseEvent e) { - to = e.getPoint(); - synchronized (userClickDoorBell) { - userClickDoorBell.notify(); - } - } - }); - - final JPanel controlPanel = new JPanel(new FlowLayout()); - - final String[] choices = new String[] { - "Java Sequential", - "Java Threads", - "GPU OpenCL" - }; - - final JComboBox startButton = new JComboBox(choices); - - startButton.addItemListener(new ItemListener(){ - @Override public void itemStateChanged(ItemEvent e) { - final String item = (String) startButton.getSelectedItem(); - - if (item.equals(choices[2])) { - mandelBrot = gpuMandelBrot; - } else if (item.equals(choices[0])) { - mandelBrot = javaMandelBrot; - } else if (item.equals(choices[1])) { - mandelBrot = javaMandelBrotMultiThread; - } - } - - }); - controlPanel.add(startButton); - - controlPanel.add(new JLabel("FPS")); - final JTextField framesPerSecondTextField = new JTextField("0", 5); - - controlPanel.add(framesPerSecondTextField); - - // Swing housework to create the frame - frame.getContentPane().add(viewer); - frame.getContentPane().add(controlPanel, BorderLayout.SOUTH); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - - // Extract the underlying RGB buffer from the image. - // Pass this to the kernel so it operates directly on the RGB buffer of the image - - final int[] imageRgb = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); - - /** Mutable values of scale, offsetx and offsety so that we can modify the zoom level and position of a view. */ - float scale = .0f; - - float offsetx = .0f; - - float offsety = .0f; - Device device = Device.best(); - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - System.out.println("max memory = " + openclDevice.getGlobalMemSize()); - System.out.println("max mem alloc size = " + openclDevice.getMaxMemAllocSize()); - gpuMandelBrot = openclDevice.bind(MandelBrot.class); - } - - javaMandelBrot = new JavaMandelBrot(); - javaMandelBrotMultiThread = new JavaMandelBrotMultiThread(); - mandelBrot = javaMandelBrot; - final float defaultScale = 3f; - scale = defaultScale; - offsetx = -1f; - offsety = 0f; - final Range range = device.createRange2D(width, height); - mandelBrot.createMandleBrot(range, scale, offsetx, offsety, imageRgb); - viewer.repaint(); - - // Window listener to dispose Kernel resources on user exit. - frame.addWindowListener(new WindowAdapter(){ - @Override public void windowClosing(WindowEvent _windowEvent) { - // mandelBrot.dispose(); - System.exit(0); - } - }); - - while (true) { - // Wait for the user to click somewhere - while (to == null) { - synchronized (userClickDoorBell) { - try { - userClickDoorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - } - - float x = -1f; - float y = 0f; - final float tox = ((float) (to.x - (width / 2)) / width) * scale; - final float toy = ((float) (to.y - (height / 2)) / height) * scale; - - // This is how many frames we will display as we zoom in and out. - final int frames = 128; - long startMillis = System.currentTimeMillis(); - int frameCount = 0; - for (int sign = -1; sign < 2; sign += 2) { - for (int i = 0; i < (frames - 4); i++) { - scale = scale + ((sign * defaultScale) / frames); - x = x - (sign * (tox / frames)); - y = y - (sign * (toy / frames)); - offsetx = x; - offsety = y; - mandelBrot.createMandleBrot(range, scale, offsetx, offsety, imageRgb); - viewer.repaint(); - synchronized (framePaintedDoorBell) { - try { - framePaintedDoorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - frameCount++; - final long endMillis = System.currentTimeMillis(); - final long elapsedMillis = endMillis - startMillis; - if (elapsedMillis > 1000) { - framesPerSecondTextField.setText("" + ((frameCount * 1000) / elapsedMillis)); - frameCount = 0; - startMillis = endMillis; - } - } - } - - // Reset zoom-in point. - to = null; - - } - - } - -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/MandelSimple.java b/samples/extension/src/com/amd/aparapi/sample/extension/MandelSimple.java deleted file mode 100644 index 1b9c993b..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/MandelSimple.java +++ /dev/null @@ -1,238 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.extension; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; - -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JTextField; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; - -/** - * An example Aparapi application which displays a view of the Mandelbrot set and lets the user zoom in to a particular point. - * - * When the user clicks on the view, this example application will zoom in to the clicked point and zoom out there after. - * On GPU, additional computing units will offer a better viewing experience. On the other hand on CPU, this example - * application might suffer with sub-optimal frame refresh rate as compared to GPU. - * - * @author gfrost - * - */ - -@Resource("com/amd/aparapi/sample/extension/mandel2.cl") interface Mandel extends OpenCL{ - Mandel createMandleBrot(// - Range range,// - @Arg("scale") float scale, // - @Arg("offsetx") float offsetx, // - @Arg("offsety") float offsety, // - @GlobalWriteOnly("rgb") int[] rgb); -} - -public class MandelSimple{ - - /** User selected zoom-in point on the Mandelbrot view. */ - public static volatile Point to = null; - - public static Mandel mandelBrot = null; - - @SuppressWarnings("serial") public static void main(String[] _args) { - - final JFrame frame = new JFrame("MandelBrot"); - - /** Width of Mandelbrot view. */ - final int width = 768; - - /** Height of Mandelbrot view. */ - final int height = 768; - - /** Mandelbrot image height. */ - - /** Image for Mandelbrot view. */ - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - - final Object framePaintedDoorBell = new Object(); - final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - - g.drawImage(image, 0, 0, width, height, this); - synchronized (framePaintedDoorBell) { - framePaintedDoorBell.notify(); - } - } - }; - - // Set the size of JComponent which displays Mandelbrot image - viewer.setPreferredSize(new Dimension(width, height)); - - final Object userClickDoorBell = new Object(); - - // Mouse listener which reads the user clicked zoom-in point on the Mandelbrot view - viewer.addMouseListener(new MouseAdapter(){ - @Override public void mouseClicked(MouseEvent e) { - to = e.getPoint(); - synchronized (userClickDoorBell) { - userClickDoorBell.notify(); - } - } - }); - - final JPanel controlPanel = new JPanel(new FlowLayout()); - - controlPanel.add(new JLabel("FPS")); - final JTextField framesPerSecondTextField = new JTextField("0", 5); - - controlPanel.add(framesPerSecondTextField); - - // Swing housework to create the frame - frame.getContentPane().add(viewer); - frame.getContentPane().add(controlPanel, BorderLayout.SOUTH); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - - // Extract the underlying RGB buffer from the image. - // Pass this to the kernel so it operates directly on the RGB buffer of the image - - final int[] imageRgb = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); - - /** Mutable values of scale, offsetx and offsety so that we can modify the zoom level and position of a view. */ - float scale = .0f; - - float offsetx = .0f; - - float offsety = .0f; - final Device device = Device.best(); - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - System.out.println("max memory = " + openclDevice.getGlobalMemSize()); - System.out.println("max mem alloc size = " + openclDevice.getMaxMemAllocSize()); - mandelBrot = openclDevice.bind(Mandel.class); - - final float defaultScale = 3f; - scale = defaultScale; - offsetx = -1f; - offsety = 0f; - final Range range = device.createRange2D(width, height); - mandelBrot.createMandleBrot(range, scale, offsetx, offsety, imageRgb); - viewer.repaint(); - - // Window listener to dispose Kernel resources on user exit. - frame.addWindowListener(new WindowAdapter(){ - @Override public void windowClosing(WindowEvent _windowEvent) { - // mandelBrot.dispose(); - System.exit(0); - } - }); - - while (true) { - // Wait for the user to click somewhere - while (to == null) { - synchronized (userClickDoorBell) { - try { - userClickDoorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - } - - float x = -1f; - float y = 0f; - final float tox = ((float) (to.x - (width / 2)) / width) * scale; - final float toy = ((float) (to.y - (height / 2)) / height) * scale; - - // This is how many frames we will display as we zoom in and out. - final int frames = 128; - long startMillis = System.currentTimeMillis(); - int frameCount = 0; - for (int sign = -1; sign < 2; sign += 2) { - for (int i = 0; i < (frames - 4); i++) { - scale = scale + ((sign * defaultScale) / frames); - x = x - (sign * (tox / frames)); - y = y - (sign * (toy / frames)); - offsetx = x; - offsety = y; - mandelBrot.createMandleBrot(range, scale, offsetx, offsety, imageRgb); - viewer.repaint(); - synchronized (framePaintedDoorBell) { - try { - framePaintedDoorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - frameCount++; - final long endMillis = System.currentTimeMillis(); - final long elapsedMillis = endMillis - startMillis; - if (elapsedMillis > 1000) { - framesPerSecondTextField.setText("" + ((frameCount * 1000) / elapsedMillis)); - frameCount = 0; - startMillis = endMillis; - } - } - } - - // Reset zoom-in point. - to = null; - - } - } - - } - -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/Pow4Example.java b/samples/extension/src/com/amd/aparapi/sample/extension/Pow4Example.java deleted file mode 100644 index 7bc04676..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/Pow4Example.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.amd.aparapi.sample.extension; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; - -public class Pow4Example{ - - @Resource("com/amd/aparapi/sample/extension/squarer.cl") interface Squarer extends OpenCL{ - - public Squarer square(// - Range _range,// - @GlobalReadWrite("in") float[] in,// - @GlobalReadWrite("out") float[] out); - } - - public static void main(String[] args) { - - final int size = 32; - final float[] in = new float[size]; - for (int i = 0; i < size; i++) { - in[i] = i; - } - final float[] squares = new float[size]; - final Range range = Range.create(size); - - final Device device = Device.best(); - - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - final Squarer squarer = openclDevice.bind(Squarer.class); - squarer.square(range, in, squares); - - for (int i = 0; i < size; i++) { - System.out.println(in[i] + " " + squares[i]); - } - - squarer.square(range, squares, in); - - for (int i = 0; i < size; i++) { - System.out.println(i + " " + squares[i] + " " + in[i]); - } - } - } - -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/SquareExample.java b/samples/extension/src/com/amd/aparapi/sample/extension/SquareExample.java deleted file mode 100644 index e2b2aa48..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/SquareExample.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.amd.aparapi.sample.extension; - -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; -import com.amd.aparapi.opencl.OpenCL.Source; -import java.util.List; - -public class SquareExample{ - - interface Squarer extends OpenCL{ - @Kernel("{\n"// - + " const size_t id = get_global_id(0);\n"// - + " out[id] = in[id]*in[id];\n"// - + "}\n")// - public Squarer square(// - Range _range,// - @GlobalReadWrite("in") float[] in,// - @GlobalReadWrite("out") float[] out); - } - - @Resource("com/amd/aparapi/sample/extension/squarer.cl") interface SquarerWithResource extends OpenCL{ - public SquarerWithResource square(// - Range _range,// - @GlobalReadWrite("in") float[] in,// - @GlobalReadWrite("out") float[] out); - } - - @Source("\n"// - + "__kernel void square (\n" // - + " __global float *in,\n"// - + " __global float *out\n" + "){\n"// - + " const size_t id = get_global_id(0);\n"// - + " out[id] = in[id]*in[id];\n"// - + "}\n") interface SquarerWithSource extends OpenCL{ - public SquarerWithSource square(// - Range _range,// - @GlobalReadOnly("in") float[] in,// - @GlobalWriteOnly("out") float[] out); - } - - public static void main(String[] args) { - final int size = 32; - final float[] in = new float[size]; - - for (int i = 0; i < size; i++) { - in[i] = i; - } - - final float[] squares = new float[size]; - final float[] quads = new float[size]; - final Range range = Range.create(size); - - final Device device = Device.best(); - - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - for (int l=0; l<5; l++){ - - final SquarerWithResource squarer = openclDevice.bind(SquarerWithResource.class); - squarer.square(range, in, squares); - - for (int i = 0; i < size; i++) { - System.out.println(l+" "+in[i] + " " + squares[i]); - } - - squarer.square(range, squares, quads); - - for (int i = 0; i < size; i++) { - System.out.println(l+" "+ in[i] + " " + squares[i] + " " + quads[i]); - } - final List profileInfo = squarer.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " - + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); - System.out.println(); - } - } - squarer.dispose(); - } - } - } -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/StopWatch.java b/samples/extension/src/com/amd/aparapi/sample/extension/StopWatch.java deleted file mode 100644 index 9fc7d9ec..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/StopWatch.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.sample.extension; - -public class StopWatch{ - long start = 0L; - - public void start() { - start = System.nanoTime(); - } - - public void print(String _str) { - long end = (System.nanoTime() - start) / 1000000; - System.out.println(_str + " " + end); - } - -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/SwapExample.java b/samples/extension/src/com/amd/aparapi/sample/extension/SwapExample.java deleted file mode 100644 index 381b52fa..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/SwapExample.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.amd.aparapi.sample.extension; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; - -public class SwapExample{ - - interface Swapper extends OpenCL{ - @Kernel("{\n"// - + " const size_t id = get_global_id(0);\n"// - + " float temp=lhs[id];" + " lhs[id] = rhs[id];\n"// - + " rhs[id] = temp;\n"// - + "}\n")// - public Swapper swap(// - Range _range,// - @GlobalReadWrite("lhs") float[] lhs,// - @GlobalReadWrite("rhs") float[] rhs); - } - - public static void main(String[] args) { - - final int size = 32; - final float[] lhs = new float[size]; - for (int i = 0; i < size; i++) { - lhs[i] = i; - } - final float[] rhs = new float[size]; - final Range range = Range.create(size); - - final Device device = Device.best(); - - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - final Swapper swapper = openclDevice.bind(Swapper.class); - for (int i = 0; i < size; i++) { - System.out.println(lhs[i] + " " + rhs[i]); - } - - swapper.swap(range, lhs, rhs); - - for (int i = 0; i < size; i++) { - System.out.println(lhs[i] + " " + rhs[i]); - } - - swapper.swap(range, lhs, rhs); - - for (int i = 0; i < size; i++) { - System.out.println(lhs[i] + " " + rhs[i]); - } - - swapper.swap(range, rhs, lhs); - - for (int i = 0; i < size; i++) { - System.out.println(lhs[i] + " " + rhs[i]); - } - - } - } - -} diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/fft.cl b/samples/extension/src/com/amd/aparapi/sample/extension/fft.cl deleted file mode 100644 index f4085983..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/fft.cl +++ /dev/null @@ -1,737 +0,0 @@ -/* ============================================================ - -Copyright (c) 2009-2010 Advanced Micro Devices, Inc. All rights reserved. - -Redistribution and use of this material is permitted under the following -conditions: - -Redistributions must retain the above copyright notice and all terms of this -license. - -In no event shall anyone redistributing or accessing or using this material -commence or participate in any arbitration or legal action relating to this -material against Advanced Micro Devices, Inc. or any copyright holders or -contributors. The foregoing shall survive any expiration or termination of -this license or any agreement or access or use related to this material. - -ANY BREACH OF ANY TERM OF THIS LICENSE SHALL RESULT IN THE IMMEDIATE REVOCATION -OF ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE THIS MATERIAL. - -THIS MATERIAL IS PROVIDED BY ADVANCED MICRO DEVICES, INC. AND ANY COPYRIGHT -HOLDERS AND CONTRIBUTORS "AS IS" IN ITS CURRENT CONDITION AND WITHOUT ANY -REPRESENTATIONS, GUARANTEE, OR WARRANTY OF ANY KIND OR IN ANY WAY RELATED TO -SUPPORT, INDEMNITY, ERROR FREE OR UNINTERRUPTED OPERA TION, OR THAT IT IS FREE -FROM DEFECTS OR VIRUSES. ALL OBLIGATIONS ARE HEREBY DISCLAIMED - WHETHER -EXPRESS, IMPLIED, OR STATUTORY - INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED -WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, -ACCURACY, COMPLETENESS, OPERABILITY, QUALITY OF SERVICE, OR NON-INFRINGEMENT. -IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR -CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, REVENUE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED OR BASED ON ANY THEORY OF LIABILITY -ARISING IN ANY WAY RELATED TO THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY -OF SUCH DAMAGE. THE ENTIRE AND AGGREGATE LIABILITY OF ADVANCED MICRO DEVICES, -INC. AND ANY COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT EXCEED TEN DOLLARS -(US $10.00). ANYONE REDISTRIBUTING OR ACCESSING OR USING THIS MATERIAL ACCEPTS -THIS ALLOCATION OF RISK AND AGREES TO RELEASE ADVANCED MICRO DEVICES, INC. AND -ANY COPYRIGHT HOLDERS AND CONTRIBUTORS FROM ANY AND ALL LIABILITIES, -OBLIGATIONS, CLAIMS, OR DEMANDS IN EXCESS OF TEN DOLLARS (US $10.00). THE -FOREGOING ARE ESSENTIAL TERMS OF THIS LICENSE AND, IF ANY OF THESE TERMS ARE -CONSTRUED AS UNENFORCEABLE, FAIL IN ESSENTIAL PURPOSE, OR BECOME VOID OR -DETRIMENTAL TO ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR -CONTRIBUTORS FOR ANY REASON, THEN ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE -THIS MATERIAL SHALL TERMINATE IMMEDIATELY. MOREOVER, THE FOREGOING SHALL -SURVIVE ANY EXPIRATION OR TERMINATION OF THIS LICENSE OR ANY AGREEMENT OR -ACCESS OR USE RELATED TO THIS MATERIAL. - -NOTICE IS HEREBY PROVIDED, AND BY REDISTRIBUTING OR ACCESSING OR USING THIS -MATERIAL SUCH NOTICE IS ACKNOWLEDGED, THAT THIS MATERIAL MAY BE SUBJECT TO -RESTRICTIONS UNDER THE LAWS AND REGULATIONS OF THE UNITED STATES OR OTHER -COUNTRIES, WHICH INCLUDE BUT ARE NOT LIMITED TO, U.S. EXPORT CONTROL LAWS SUCH -AS THE EXPORT ADMINISTRATION REGULATIONS AND NATIONAL SECURITY CONTROLS AS -DEFINED THEREUNDER, AS WELL AS STATE DEPARTMENT CONTROLS UNDER THE U.S. -MUNITIONS LIST. THIS MATERIAL MAY NOT BE USED, RELEASED, TRANSFERRED, IMPORTED, -EXPORTED AND/OR RE-EXPORTED IN ANY MANNER PROHIBITED UNDER ANY APPLICABLE LAWS, -INCLUDING U.S. EXPORT CONTROL LAWS REGARDING SPECIFICALLY DESIGNATED PERSONS, -COUNTRIES AND NATIONALS OF COUNTRIES SUBJECT TO NATIONAL SECURITY CONTROLS. -MOREOVER, THE FOREGOING SHALL SURVIVE ANY EXPIRATION OR TERMINATION OF ANY -LICENSE OR AGREEMENT OR ACCESS OR USE RELATED TO THIS MATERIAL. - -NOTICE REGARDING THE U.S. GOVERNMENT AND DOD AGENCIES: This material is -provided with "RESTRICTED RIGHTS" and/or "LIMITED RIGHTS" as applicable to -computer software and technical data, respectively. Use, duplication, -distribution or disclosure by the U.S. Government and/or DOD agencies is -subject to the full extent of restrictions in all applicable regulations, -including those found at FAR52.227 and DFARS252.227 et seq. and any successor -regulations thereof. Use of this material by the U.S. Government and/or DOD -agencies is acknowledgment of the proprietary rights of any copyright holders -and contributors, including those of Advanced Micro Devices, Inc., as well as -the provisions of FAR52.227-14 through 23 regarding privately developed and/or -commercial computer software. - -This license forms the entire agreement regarding the subject matter hereof and -supersedes all proposals and prior discussions and writings between the parties -with respect thereto. This license does not affect any ownership, rights, title, -or interest in, or relating to, this material. No terms of this license can be -modified or waived, and no breach of this license can be excused, unless done -so in a writing signed by all affected parties. Each term of this license is -separately enforceable. If any term of this license is determined to be or -becomes unenforceable or illegal, such term shall be reformed to the minimum -extent necessary in order for this license to remain in effect in accordance -with its terms as modified by such reformation. This license shall be governed -by and construed in accordance with the laws of the State of Texas without -regard to rules on conflicts of law of any state or jurisdiction or the United -Nations Convention on the International Sale of Goods. All disputes arising out -of this license shall be subject to the jurisdiction of the federal and state -courts in Austin, Texas, and all defenses are hereby waived concerning personal -jurisdiction and venue of these courts. - -============================================================ */ - - -// This is 2 PI / 1024 -#define ANGLE 0x1.921fb6p-8F - -// Return sin and cos of -2*pi*i/1024 -__attribute__((always_inline)) float -k_sincos(int i, float *cretp) -{ - if (i > 512) - i -= 1024; - - float x = i * -ANGLE; - *cretp = native_cos(x); - return native_sin(x); -} - -__attribute__((always_inline)) float4 -k_sincos4(int4 i, float4 *cretp) -{ - i -= (i > 512) & 1024; - float4 x = convert_float4(i) * -ANGLE; - *cretp = native_cos(x); - return native_sin(x); -} - -// Twiddle factor stuff -#define TWGEN(I,C,S) \ - float C; \ - float S = k_sincos(tbase * I, &C) - -#define TW4GEN(I,C,S) \ - float4 C; \ - float4 S = k_sincos4(tbase * I, &C) - -#define TWAPPLY(ZR, ZI, C, S) \ - do { \ - float4 __r = C * ZR - S * ZI; \ - ZI = C * ZI + S * ZR; \ - ZR = __r; \ - } while (0) - -# define TW4IDDLE4() \ - do { \ - TW4GEN(1, c1, s1); \ - TWAPPLY(zr1, zi1, c1, s1); \ - TW4GEN(2, c2, s2); \ - TWAPPLY(zr2, zi2, c2, s2); \ - TW4GEN(3, c3, s3); \ - TWAPPLY(zr3, zi3, c3, s3); \ - } while (0) - -# define TWIDDLE4() \ - do { \ - TWGEN(1, c1, s1); \ - TWAPPLY(zr1, zi1, c1, s1); \ - TWGEN(2, c2, s2); \ - TWAPPLY(zr2, zi2, c2, s2); \ - TWGEN(3, c3, s3); \ - TWAPPLY(zr3, zi3, c3, s3); \ - } while (0) - -// 4 point FFT -#define FFT4() \ - do { \ - float4 ar0 = zr0 + zr2; \ - float4 ar2 = zr1 + zr3; \ - float4 br0 = ar0 + ar2; \ - float4 br1 = zr0 - zr2; \ - float4 br2 = ar0 - ar2; \ - float4 br3 = zr1 - zr3; \ - float4 ai0 = zi0 + zi2; \ - float4 ai2 = zi1 + zi3; \ - float4 bi0 = ai0 + ai2; \ - float4 bi1 = zi0 - zi2; \ - float4 bi2 = ai0 - ai2; \ - float4 bi3 = zi1 - zi3; \ - zr0 = br0; \ - zi0 = bi0; \ - zr1 = br1 + bi3; \ - zi1 = bi1 - br3; \ - zr3 = br1 - bi3; \ - zi3 = br3 + bi1; \ - zr2 = br2; \ - zi2 = bi2; \ - } while (0) - -// First pass of 1K FFT -__attribute__((always_inline)) void -kfft_pass1(uint me, - const __global float *gr, const __global float *gi, - __local float *lds) -{ - const __global float4 *gp; - __local float *lp; - - // Pull in transform data - gp = (const __global float4 *)(gr + (me << 2)); - float4 zr0 = gp[0*64]; - float4 zr1 = gp[1*64]; - float4 zr2 = gp[2*64]; - float4 zr3 = gp[3*64]; - - gp = (const __global float4 *)(gi + (me << 2)); - float4 zi0 = gp[0*64]; - float4 zi1 = gp[1*64]; - float4 zi2 = gp[2*64]; - float4 zi3 = gp[3*64]; - - FFT4(); - - int4 tbase = (int)(me << 2) + (int4)(0, 1, 2, 3); - TW4IDDLE4(); - - // Save registers - // Note that this pointer is not aligned enough to be cast to a float4* - lp = lds + ((me << 2) + (me >> 3)); - - lp[0] = zr0.x; - lp[1] = zr0.y; - lp[2] = zr0.z; - lp[3] = zr0.w; - lp += 66*4; - - lp[0] = zr1.x; - lp[1] = zr1.y; - lp[2] = zr1.z; - lp[3] = zr1.w; - lp += 66*4; - - lp[0] = zr2.x; - lp[1] = zr2.y; - lp[2] = zr2.z; - lp[3] = zr2.w; - lp += 66*4; - - lp[0] = zr3.x; - lp[1] = zr3.y; - lp[2] = zr3.z; - lp[3] = zr3.w; - lp += 66*4; - - // Imaginary part - lp[0] = zi0.x; - lp[1] = zi0.y; - lp[2] = zi0.z; - lp[3] = zi0.w; - lp += 66*4; - - lp[0] = zi1.x; - lp[1] = zi1.y; - lp[2] = zi1.z; - lp[3] = zi1.w; - lp += 66*4; - - lp[0] = zi2.x; - lp[1] = zi2.y; - lp[2] = zi2.z; - lp[3] = zi2.w; - lp += 66*4; - - lp[0] = zi3.x; - lp[1] = zi3.y; - lp[2] = zi3.z; - lp[3] = zi3.w; - - barrier(CLK_LOCAL_MEM_FENCE); -} - -// Second pass of 1K FFT -__attribute__((always_inline)) void -kfft_pass2(uint me, __local float *lds) -{ - __local float *lp; - - // Load registers - lp = lds + (me + (me >> 5)); - - float4 zr0, zr1, zr2, zr3; - - zr0.x = lp[0*66]; - zr1.x = lp[1*66]; - zr2.x = lp[2*66]; - zr3.x = lp[3*66]; - lp += 66*4; - - zr0.y = lp[0*66]; - zr1.y = lp[1*66]; - zr2.y = lp[2*66]; - zr3.y = lp[3*66]; - lp += 66*4; - - zr0.z = lp[0*66]; - zr1.z = lp[1*66]; - zr2.z = lp[2*66]; - zr3.z = lp[3*66]; - lp += 66*4; - - zr0.w = lp[0*66]; - zr1.w = lp[1*66]; - zr2.w = lp[2*66]; - zr3.w = lp[3*66]; - lp += 66*4; - - float4 zi0, zi1, zi2, zi3; - - zi0.x = lp[0*66]; - zi1.x = lp[1*66]; - zi2.x = lp[2*66]; - zi3.x = lp[3*66]; - lp += 66*4; - - zi0.y = lp[0*66]; - zi1.y = lp[1*66]; - zi2.y = lp[2*66]; - zi3.y = lp[3*66]; - lp += 66*4; - - zi0.z = lp[0*66]; - zi1.z = lp[1*66]; - zi2.z = lp[2*66]; - zi3.z = lp[3*66]; - lp += 66*4; - - zi0.w = lp[0*66]; - zi1.w = lp[1*66]; - zi2.w = lp[2*66]; - zi3.w = lp[3*66]; - - // Transform and twiddle - FFT4(); - - int tbase = (int)(me << 2); - TWIDDLE4(); - - barrier(CLK_LOCAL_MEM_FENCE); - - // Store registers - lp = lds + ((me << 2) + (me >> 3)); - - lp[0] = zr0.x; - lp[1] = zr1.x; - lp[2] = zr2.x; - lp[3] = zr3.x; - lp += 66*4; - - lp[0] = zr0.y; - lp[1] = zr1.y; - lp[2] = zr2.y; - lp[3] = zr3.y; - lp += 66*4; - - lp[0] = zr0.z; - lp[1] = zr1.z; - lp[2] = zr2.z; - lp[3] = zr3.z; - lp += 66*4; - - lp[0] = zr0.w; - lp[1] = zr1.w; - lp[2] = zr2.w; - lp[3] = zr3.w; - lp += 66*4; - - // Imaginary part - lp[0] = zi0.x; - lp[1] = zi1.x; - lp[2] = zi2.x; - lp[3] = zi3.x; - lp += 66*4; - - lp[0] = zi0.y; - lp[1] = zi1.y; - lp[2] = zi2.y; - lp[3] = zi3.y; - lp += 66*4; - - lp[0] = zi0.z; - lp[1] = zi1.z; - lp[2] = zi2.z; - lp[3] = zi3.z; - lp += 66*4; - - lp[0] = zi0.w; - lp[1] = zi1.w; - lp[2] = zi2.w; - lp[3] = zi3.w; - - barrier(CLK_LOCAL_MEM_FENCE); -} - -// Third pass of 1K FFT -__attribute__((always_inline)) void -kfft_pass3(uint me, __local float *lds) -{ - __local float *lp; - - // Load registers - lp = lds + (me + (me >> 5)); - - float4 zr0, zr1, zr2, zr3; - - zr0.x = lp[0*66]; - zr1.x = lp[1*66]; - zr2.x = lp[2*66]; - zr3.x = lp[3*66]; - lp += 66*4; - - zr0.y = lp[0*66]; - zr1.y = lp[1*66]; - zr2.y = lp[2*66]; - zr3.y = lp[3*66]; - lp += 66*4; - - zr0.z = lp[0*66]; - zr1.z = lp[1*66]; - zr2.z = lp[2*66]; - zr3.z = lp[3*66]; - lp += 66*4; - - zr0.w = lp[0*66]; - zr1.w = lp[1*66]; - zr2.w = lp[2*66]; - zr3.w = lp[3*66]; - lp += 66*4; - - float4 zi0, zi1, zi2, zi3; - - zi0.x = lp[0*66]; - zi1.x = lp[1*66]; - zi2.x = lp[2*66]; - zi3.x = lp[3*66]; - lp += 66*4; - - zi0.y = lp[0*66]; - zi1.y = lp[1*66]; - zi2.y = lp[2*66]; - zi3.y = lp[3*66]; - lp += 66*4; - - zi0.z = lp[0*66]; - zi1.z = lp[1*66]; - zi2.z = lp[2*66]; - zi3.z = lp[3*66]; - lp += 66*4; - - zi0.w = lp[0*66]; - zi1.w = lp[1*66]; - zi2.w = lp[2*66]; - zi3.w = lp[3*66]; - - // Transform and twiddle - FFT4(); - - int tbase = (int)((me >> 2) << 4); - TWIDDLE4(); - - barrier(CLK_LOCAL_MEM_FENCE); - - // Save registers - lp = lds + me; - - lp[0*66] = zr0.x; - lp[1*66] = zr0.y; - lp[2*66] = zr0.z; - lp[3*66] = zr0.w; - lp += 66*4; - - lp[0*66] = zr1.x; - lp[1*66] = zr1.y; - lp[2*66] = zr1.z; - lp[3*66] = zr1.w; - lp += 66*4; - - lp[0*66] = zr2.x; - lp[1*66] = zr2.y; - lp[2*66] = zr2.z; - lp[3*66] = zr2.w; - lp += 66*4; - - lp[0*66] = zr3.x; - lp[1*66] = zr3.y; - lp[2*66] = zr3.z; - lp[3*66] = zr3.w; - lp += 66*4; - - // Imaginary part - lp[0*66] = zi0.x; - lp[1*66] = zi0.y; - lp[2*66] = zi0.z; - lp[3*66] = zi0.w; - lp += 66*4; - - lp[0*66] = zi1.x; - lp[1*66] = zi1.y; - lp[2*66] = zi1.z; - lp[3*66] = zi1.w; - lp += 66*4; - - lp[0*66] = zi2.x; - lp[1*66] = zi2.y; - lp[2*66] = zi2.z; - lp[3*66] = zi2.w; - lp += 66*4; - - lp[0*66] = zi3.x; - lp[1*66] = zi3.y; - lp[2*66] = zi3.z; - lp[3*66] = zi3.w; - - barrier(CLK_LOCAL_MEM_FENCE); -} - -// Fourth pass of 1K FFT -__attribute__((always_inline)) void -kfft_pass4(uint me, __local float *lds) -{ - __local float *lp; - - // Load registers - lp = lds + ((me & 0x3) + ((me >> 2) & 0x3)*(66*4) + ((me >> 4) << 2)); - - float4 zr0, zr1, zr2, zr3; - - zr0.x = lp[0*66]; - zr0.y = lp[1*66]; - zr0.z = lp[2*66]; - zr0.w = lp[3*66]; - lp += 16; - - zr1.x = lp[0*66]; - zr1.y = lp[1*66]; - zr1.z = lp[2*66]; - zr1.w = lp[3*66]; - lp += 16; - - zr2.x = lp[0*66]; - zr2.y = lp[1*66]; - zr2.z = lp[2*66]; - zr2.w = lp[3*66]; - lp += 16; - - zr3.x = lp[0*66]; - zr3.y = lp[1*66]; - zr3.z = lp[2*66]; - zr3.w = lp[3*66]; - lp += 66*4*4 - 3*16; - - float4 zi0, zi1, zi2, zi3; - - zi0.x = lp[0*66]; - zi0.y = lp[1*66]; - zi0.z = lp[2*66]; - zi0.w = lp[3*66]; - lp += 16; - - zi1.x = lp[0*66]; - zi1.y = lp[1*66]; - zi1.z = lp[2*66]; - zi1.w = lp[3*66]; - lp += 16; - - zi2.x = lp[0*66]; - zi2.y = lp[1*66]; - zi2.z = lp[2*66]; - zi2.w = lp[3*66]; - lp += 16; - - zi3.x = lp[0*66]; - zi3.y = lp[1*66]; - zi3.z = lp[2*66]; - zi3.w = lp[3*66]; - - // Transform and twiddle - FFT4(); - - int tbase = (int)((me >> 4) << 6); - TWIDDLE4(); - - barrier(CLK_LOCAL_MEM_FENCE); - - // Save registers in conflict free manner - lp = lds + me; - - lp[0*68] = zr0.x; - lp[1*68] = zr0.y; - lp[2*68] = zr0.z; - lp[3*68] = zr0.w; - lp += 68*4; - - lp[0*68] = zr1.x; - lp[1*68] = zr1.y; - lp[2*68] = zr1.z; - lp[3*68] = zr1.w; - lp += 68*4; - - lp[0*68] = zr2.x; - lp[1*68] = zr2.y; - lp[2*68] = zr2.z; - lp[3*68] = zr2.w; - lp += 68*4; - - lp[0*68] = zr3.x; - lp[1*68] = zr3.y; - lp[2*68] = zr3.z; - lp[3*68] = zr3.w; - lp += 68*4; - - // Imaginary part - lp[0*68] = zi0.x; - lp[1*68] = zi0.y; - lp[2*68] = zi0.z; - lp[3*68] = zi0.w; - lp += 68*4; - - lp[0*68] = zi1.x; - lp[1*68] = zi1.y; - lp[2*68] = zi1.z; - lp[3*68] = zi1.w; - lp += 68*4; - - lp[0*68] = zi2.x; - lp[1*68] = zi2.y; - lp[2*68] = zi2.z; - lp[3*68] = zi2.w; - lp += 68*4; - - lp[0*68] = zi3.x; - lp[1*68] = zi3.y; - lp[2*68] = zi3.z; - lp[3*68] = zi3.w; - - barrier(CLK_LOCAL_MEM_FENCE); -} - -// Fifth and last pass of 1K FFT -__attribute__((always_inline)) void -kfft_pass5(uint me, - const __local float *lds, - __global float *gr, __global float *gi) -{ - const __local float *lp; - - // Load registers - lp = lds + ((me & 0xf) + (me >> 4)*(68*4)); - - float4 zr0, zr1, zr2, zr3; - - zr0.x = lp[0*68]; - zr0.y = lp[1*68]; - zr0.z = lp[2*68]; - zr0.w = lp[3*68]; - lp += 16; - - zr1.x = lp[0*68]; - zr1.y = lp[1*68]; - zr1.z = lp[2*68]; - zr1.w = lp[3*68]; - lp += 16; - - zr2.x = lp[0*68]; - zr2.y = lp[1*68]; - zr2.z = lp[2*68]; - zr2.w = lp[3*68]; - lp += 16; - - zr3.x = lp[0*68]; - zr3.y = lp[1*68]; - zr3.z = lp[2*68]; - zr3.w = lp[3*68]; - - lp += 68*4*4 - 3*16; - - float4 zi0, zi1, zi2, zi3; - - zi0.x = lp[0*68]; - zi0.y = lp[1*68]; - zi0.z = lp[2*68]; - zi0.w = lp[3*68]; - lp += 16; - - zi1.x = lp[0*68]; - zi1.y = lp[1*68]; - zi1.z = lp[2*68]; - zi1.w = lp[3*68]; - lp += 16; - - zi2.x = lp[0*68]; - zi2.y = lp[1*68]; - zi2.z = lp[2*68]; - zi2.w = lp[3*68]; - lp += 16; - - zi3.x = lp[0*68]; - zi3.y = lp[1*68]; - zi3.z = lp[2*68]; - zi3.w = lp[3*68]; - - // Transform - FFT4(); - - // Save result - __global float4 *gp = (__global float4 *)(gr + (me << 2)); - gp[0*64] = zr0; - gp[1*64] = zr1; - gp[2*64] = zr2; - gp[3*64] = zr3; - - gp = (__global float4 *)(gi + (me << 2)); - gp[0*64] = zi0; - gp[1*64] = zi1; - gp[2*64] = zi2; - gp[3*64] = zi3; -} - -// Distance between first real element of successive 1K vectors -// It must be >= 1024, and a multiple of 4 -#define VSTRIDE (1024+0) - -// Performs a 1K complex FFT with every 64 global ids. -// Each vector is a multiple of VSTRIDE from the first -// Number of global ids must be a multiple of 64, e.g. 1024*64 -// -// greal - pointer to input and output real part of data -// gimag - pointer to input and output imaginary part of data -__kernel void -forward(__global float *greal, __global float *gimag) -{ - // This is 8704 bytes - __local float lds[68*4*4*2]; - - __global float *gr; - __global float *gi; - uint gid = get_global_id(0); - uint me = gid & 0x3fU; - uint dg = (gid >> 6) * VSTRIDE; - - gr = greal + dg; - gi = gimag + dg; - - kfft_pass1(me, gr, gi, lds); - kfft_pass2(me, lds); - kfft_pass3(me, lds); - kfft_pass4(me, lds); - kfft_pass5(me, lds, gr, gi); -} - diff --git a/samples/extension/src/com/amd/aparapi/sample/extension/mandel.cl b/samples/extension/src/com/amd/aparapi/sample/extension/mandel.cl deleted file mode 100644 index b6c1da01..00000000 --- a/samples/extension/src/com/amd/aparapi/sample/extension/mandel.cl +++ /dev/null @@ -1,91 +0,0 @@ -#define MAX_ITERATIONS 64 - -__constant const int pallette[]={ - -65536, - -59392, - -53248, - -112640, - -106752, - -166144, - -160256, - -219904, - -279552, - -339200, - -399104, - -985344, - -2624000, - -4197376, - -5770496, - -7343872, - -8851712, - -10425088, - -11932928, - -13375232, - -14817792, - -16260096, - -16719602, - -16720349, - -16721097, - -16721846, - -16722595, - -16723345, - -16724351, - -16725102, - -16726110, - -16727119, - -16728129, - -16733509, - -16738889, - -16744269, - -16749138, - -16754006, - -16758619, - -16762976, - -16767077, - -16771178, - -16774767, - -16514932, - -15662970, - -14942079, - -14221189, - -13631371, - -13107088, - -12648342, - -12320669, - -11992995, - -11796393, - -11665328, - -11993019, - -12386248, - -12845011, - -13303773, - -13762534, - -14286830, - -14745588, - -15269881, - -15728637, - -16252927, - 0 -}; - -__kernel void createMandleBrot( - float scale, - float offsetx, - float offsety, - __global int *rgb -){ - int gid = get_global_id(0) + get_global_id(1)*get_global_size(0); - float x = ((((float)(get_global_id(0)) * scale) - ((scale / 2.0f) * (float)get_global_size(0))) / (float)get_global_size(0)) + offsetx; - float y = ((((float)(get_global_id(1)) * scale) - ((scale / 2.0f) * (float)get_global_size(1))) / (float)get_global_size(1)) + offsety; - int count = 0; - float zx = x; - float zy = y; - float new_zx = 0.0f; - for (; count - - - - - - - - - - - \ No newline at end of file diff --git a/samples/info/.project b/samples/info/.project deleted file mode 100644 index 464357ee..00000000 --- a/samples/info/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - info - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/info/build.xml b/samples/info/build.xml deleted file mode 100644 index 5f74b5da..00000000 --- a/samples/info/build.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/samples/info/info.bat b/samples/info/info.bat deleted file mode 100644 index ed9c0c28..00000000 --- a/samples/info/info.bat +++ /dev/null @@ -1,5 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;info.jar ^ - com.amd.aparapi.sample.info.Main - diff --git a/samples/info/info.sh b/samples/info/info.sh deleted file mode 100644 index 51f9197c..00000000 --- a/samples/info/info.sh +++ /dev/null @@ -1,4 +0,0 @@ -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist \ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:info.jar \ - com.amd.aparapi.sample.info.Main diff --git a/samples/info/src/com/amd/aparapi/sample/info/Main.java b/samples/info/src/com/amd/aparapi/sample/info/Main.java deleted file mode 100644 index 9ed78b3c..00000000 --- a/samples/info/src/com/amd/aparapi/sample/info/Main.java +++ /dev/null @@ -1,120 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.info; - -import java.util.List; - -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.internal.opencl.OpenCLPlatform; - -public class Main{ - public static void main(String[] _args) { - System.out.println("com.amd.aparapi.sample.info.Main"); - List platforms = (new OpenCLPlatform()).getOpenCLPlatforms(); - System.out.println("Machine contains " + platforms.size() + " OpenCL platforms"); - int platformc = 0; - for (OpenCLPlatform platform : platforms) { - System.out.println("Platform " + platformc + "{"); - System.out.println(" Name : \"" + platform.getName() + "\""); - System.out.println(" Vendor : \"" + platform.getVendor() + "\""); - System.out.println(" Version : \"" + platform.getVersion() + "\""); - List devices = platform.getOpenCLDevices(); - System.out.println(" Platform contains " + devices.size() + " OpenCL devices"); - int devicec = 0; - for (OpenCLDevice device : devices) { - System.out.println(" Device " + devicec + "{"); - System.out.println(" Type : " + device.getType()); - System.out.println(" GlobalMemSize : " + device.getGlobalMemSize()); - System.out.println(" LocalMemSize : " + device.getLocalMemSize()); - System.out.println(" MaxComputeUnits : " + device.getMaxComputeUnits()); - System.out.println(" MaxWorkGroupSizes : " + device.getMaxWorkGroupSize()); - System.out.println(" MaxWorkItemDimensions : " + device.getMaxWorkItemDimensions()); - System.out.println(" }"); - devicec++; - } - System.out.println("}"); - platformc++; - } - - Device bestDevice = OpenCLDevice.best(); - if (bestDevice == null) { - System.out.println("OpenCLDevice.best() returned null!"); - } else { - System.out.println("OpenCLDevice.best() returned { "); - System.out.println(" Type : " + bestDevice.getType()); - System.out.println(" GlobalMemSize : " + ((OpenCLDevice) bestDevice).getGlobalMemSize()); - System.out.println(" LocalMemSize : " + ((OpenCLDevice) bestDevice).getLocalMemSize()); - System.out.println(" MaxComputeUnits : " + ((OpenCLDevice) bestDevice).getMaxComputeUnits()); - System.out.println(" MaxWorkGroupSizes : " + ((OpenCLDevice) bestDevice).getMaxWorkGroupSize()); - System.out.println(" MaxWorkItemDimensions : " + ((OpenCLDevice) bestDevice).getMaxWorkItemDimensions()); - System.out.println("}"); - } - - Device firstCPU = OpenCLDevice.firstCPU(); - if (firstCPU == null) { - System.out.println("OpenCLDevice.firstCPU() returned null!"); - } else { - System.out.println("OpenCLDevice.firstCPU() returned { "); - System.out.println(" Type : " + firstCPU.getType()); - System.out.println(" GlobalMemSize : " + ((OpenCLDevice) firstCPU).getGlobalMemSize()); - System.out.println(" LocalMemSize : " + ((OpenCLDevice) firstCPU).getLocalMemSize()); - System.out.println(" MaxComputeUnits : " + ((OpenCLDevice) firstCPU).getMaxComputeUnits()); - System.out.println(" MaxWorkGroupSizes : " + ((OpenCLDevice) firstCPU).getMaxWorkGroupSize()); - System.out.println(" MaxWorkItemDimensions : " + ((OpenCLDevice) firstCPU).getMaxWorkItemDimensions()); - System.out.println("}"); - } - - Device firstGPU = OpenCLDevice.firstGPU(); - if (firstGPU == null) { - System.out.println("OpenCLDevice.firstGPU() returned null!"); - } else { - System.out.println("OpenCLDevice.firstGPU() returned { "); - System.out.println(" Type : " + firstGPU.getType()); - System.out.println(" GlobalMemSize : " + ((OpenCLDevice) firstGPU).getGlobalMemSize()); - System.out.println(" LocalMemSize : " + ((OpenCLDevice) firstGPU).getLocalMemSize()); - System.out.println(" MaxComputeUnits : " + ((OpenCLDevice) firstGPU).getMaxComputeUnits()); - System.out.println(" MaxWorkGroupSizes : " + ((OpenCLDevice) firstGPU).getMaxWorkGroupSize()); - System.out.println(" MaxWorkItemDimensions : " + ((OpenCLDevice) firstGPU).getMaxWorkItemDimensions()); - System.out.println("}"); - } - - } - -} diff --git a/samples/life/.classpath b/samples/life/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/life/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/life/.project b/samples/life/.project deleted file mode 100644 index 01f51c90..00000000 --- a/samples/life/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - life - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/life/build.xml b/samples/life/build.xml deleted file mode 100644 index a64631df..00000000 --- a/samples/life/build.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/samples/life/life-agent.bat b/samples/life/life-agent.bat deleted file mode 100644 index 7beb95d8..00000000 --- a/samples/life/life-agent.bat +++ /dev/null @@ -1,13 +0,0 @@ -java ^ - -agentpath:../../com.amd.aparapi.jni/dist/aparapi_x86_64.dll^ - -Dcom.amd.aparapi.useAgent=true ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dsequential=false^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableVerboseJNI=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;life.jar ^ - com.amd.aparapi.sample.life.Main - - diff --git a/samples/life/life-agent.sh b/samples/life/life-agent.sh deleted file mode 100644 index 925ec674..00000000 --- a/samples/life/life-agent.sh +++ /dev/null @@ -1,6 +0,0 @@ -java\ - -agentpath:../../com.amd.aparapi.jni/dist/libaparapi_x86_64.so\ - -Dcom.amd.aparapi.executionMode=$1\ - -Dcom.amd.aparapi.useAgent=true\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:life.jar\ - com.amd.aparapi.sample.life.Main diff --git a/samples/life/life.bat b/samples/life/life.bat deleted file mode 100644 index ffaefaae..00000000 --- a/samples/life/life.bat +++ /dev/null @@ -1,12 +0,0 @@ - -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dsequential=false^ - -Dcom.amd.aparapi.executionMode=GPU ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableVerboseJNI=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;life.jar ^ - com.amd.aparapi.sample.life.Main - - diff --git a/samples/life/life.sh b/samples/life/life.sh deleted file mode 100644 index 9cf1daf1..00000000 --- a/samples/life/life.sh +++ /dev/null @@ -1,5 +0,0 @@ -java\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.executionMode=$1\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:life.jar\ - com.amd.aparapi.sample.life.Main diff --git a/samples/life/src/com/amd/aparapi/sample/life/Main.java b/samples/life/src/com/amd/aparapi/sample/life/Main.java deleted file mode 100644 index 963cceb9..00000000 --- a/samples/life/src/com/amd/aparapi/sample/life/Main.java +++ /dev/null @@ -1,282 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.life; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Graphics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; -import java.util.List; - -import javax.swing.JButton; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.WindowConstants; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which demonstrates Conways 'Game Of Life'. - * - * Original code from Witold Bolt's site https://github.com/houp/aparapi/tree/master/samples/gameoflife. - * - * Converted to use int buffer and some performance tweaks by Gary Frost - * - * @author Wiltold Bolt - * @author Gary Frost - */ -public class Main{ - - /** - * LifeKernel represents the data parallel algorithm describing by Conway's game of life. - * - * http://en.wikipedia.org/wiki/Conway's_Game_of_Life - * - * We examine the state of each pixel and its 8 neighbors and apply the following rules. - * - * if pixel is dead (off) and number of neighbors == 3 { - * pixel is turned on - * } else if pixel is alive (on) and number of neighbors is neither 2 or 3 - * pixel is turned off - * } - * - * We use an image buffer which is 2*width*height the size of screen and we use fromBase and toBase to track which half of the buffer is being mutated for each pass. We basically - * copy from getGlobalId()+fromBase to getGlobalId()+toBase; - * - * - * Prior to each pass the values of fromBase and toBase are swapped. - * - */ - - public static class LifeKernel extends Kernel{ - - private static final int ALIVE = 0xffffff; - - private static final int DEAD = 0; - - private final int[] imageData; - - private final int width; - - private final int height; - - private final Range range; - - private int fromBase; - - private int toBase; - - public LifeKernel(int _width, int _height, BufferedImage _image) { - imageData = ((DataBufferInt) _image.getRaster().getDataBuffer()).getData(); - width = _width; - height = _height; - - final String executionMode = System.getProperty("com.amd.aparapi.executionMode"); - if ((executionMode != null) && executionMode.equals("JTP")) { - range = Range.create(width * height, 4); - } else { - range = Range.create(width * height); - } - - System.out.println("range = " + range); - fromBase = height * width; - toBase = 0; - setExplicit(true); // This gives us a performance boost - - /** draw a line across the image **/ - for (int i = (width * (height / 2)) + (width / 10); i < ((width * ((height / 2) + 1)) - (width / 10)); i++) { - imageData[i] = LifeKernel.ALIVE; - } - - put(imageData); // Because we are using explicit buffer management we must put the imageData array - } - - public void processPixel(int gid) { - final int to = gid + toBase; - final int from = gid + fromBase; - final int x = gid % width; - final int y = gid / width; - - if (((x == 0) || (x == (width - 1)) || (y == 0) || (y == (height - 1)))) { - // This pixel is on the border of the view, just keep existing value - imageData[to] = imageData[from]; - } else { - // Count the number of neighbors. We use (value&1x) to turn pixel value into either 0 or 1 - final int neighbors = (imageData[from - 1] & 1) + // EAST - (imageData[from + 1] & 1) + // WEST - (imageData[from - width - 1] & 1) + // NORTHEAST - (imageData[from - width] & 1) + // NORTH - (imageData[(from - width) + 1] & 1) + // NORTHWEST - (imageData[(from + width) - 1] & 1) + // SOUTHEAST - (imageData[from + width] & 1) + // SOUTH - (imageData[from + width + 1] & 1); // SOUTHWEST - - // The game of life logic - if ((neighbors == 3) || ((neighbors == 2) && (imageData[from] == ALIVE))) { - imageData[to] = ALIVE; - } else { - imageData[to] = DEAD; - } - - } - } - - @Override public void run() { - final int gid = getGlobalId(); - processPixel(gid); - } - - boolean sequential = Boolean.getBoolean("sequential"); - - public void nextGeneration() { - // swap fromBase and toBase - final int swap = fromBase; - fromBase = toBase; - toBase = swap; - if (sequential) { - for (int gid = 0; gid < (width * height); gid++) { - processPixel(gid); - } - - } else { - execute(range); - } - - } - - } - - static boolean running = false; - - public static void main(String[] _args) { - - final JFrame frame = new JFrame("Game of Life"); - final int width = Integer.getInteger("width", 1024 + 512 + 256 + 128); - - final int height = Integer.getInteger("height", 768 + 256); - - // Buffer is twice the size as the screen. We will alternate between mutating data from top to bottom - // and bottom to top in alternate generation passses. The LifeKernel will track which pass is which - final BufferedImage image = new BufferedImage(width, height * 2, BufferedImage.TYPE_INT_RGB); - - final LifeKernel lifeKernel = new LifeKernel(width, height, image); - - // Create a component for viewing the offsecreen image - @SuppressWarnings("serial") final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - if (lifeKernel.isExplicit()) { - lifeKernel.get(lifeKernel.imageData); // We only pull the imageData when we intend to use it. - final List profileInfo = lifeKernel.getProfileInfo(); - if (profileInfo != null) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " - + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - } - } - // We copy one half of the offscreen buffer to the viewer, we copy the half that we just mutated. - if (lifeKernel.fromBase == 0) { - g.drawImage(image, 0, 0, width, height, 0, 0, width, height, this); - } else { - g.drawImage(image, 0, 0, width, height, 0, height, width, 2 * height, this); - } - } - }; - - final JPanel controlPanel = new JPanel(new FlowLayout()); - frame.getContentPane().add(controlPanel, BorderLayout.SOUTH); - - final JButton startButton = new JButton("Start"); - - startButton.addActionListener(new ActionListener(){ - @Override public void actionPerformed(ActionEvent e) { - running = true; - startButton.setEnabled(false); - } - }); - controlPanel.add(startButton); - controlPanel.add(new JLabel(lifeKernel.getExecutionMode().toString())); - - controlPanel.add(new JLabel(" Generations/Second=")); - final JLabel generationsPerSecond = new JLabel("0.00"); - controlPanel.add(generationsPerSecond); - - // Set the default size and add to the frames content pane - viewer.setPreferredSize(new Dimension(width, height)); - frame.getContentPane().add(viewer); - - // Swing housekeeping - frame.pack(); - frame.setVisible(true); - frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); - - long start = System.currentTimeMillis(); - long generations = 0; - while (!running) { - try { - Thread.sleep(10); - viewer.repaint(); - } catch (final InterruptedException e1) { - // TODO Auto-generated catch block - e1.printStackTrace(); - } - } - while (true) { - - lifeKernel.nextGeneration(); // Work is performed here - viewer.repaint(); // Request a repaint of the viewer (causes paintComponent(Graphics) to be called later not synchronous - generations++; - final long now = System.currentTimeMillis(); - if ((now - start) > 1000) { - generationsPerSecond.setText(String.format("%5.2f", (generations * 1000.0) / (now - start))); - start = now; - generations = 0; - } - } - - } -} diff --git a/samples/mandel/.classpath b/samples/mandel/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/mandel/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/mandel/.project b/samples/mandel/.project deleted file mode 100644 index 6be9bbf8..00000000 --- a/samples/mandel/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - mandel - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/mandel/build.xml b/samples/mandel/build.xml deleted file mode 100644 index 046dfb00..00000000 --- a/samples/mandel/build.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/samples/mandel/mandel-agent.bat b/samples/mandel/mandel-agent.bat deleted file mode 100644 index 48259591..00000000 --- a/samples/mandel/mandel-agent.bat +++ /dev/null @@ -1,16 +0,0 @@ -java ^ - -agentpath:../../com.amd.aparapi.jni/dist/aparapi_x86_64.dll ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.useAgent=true ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.logLevel=OFF^ - -Dcom.amd.aparapi.enableVerboseJNI=false ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dcom.amd.aparapi.enableVerboseJNIOpenCLResourceTracking=false ^ - -Dcom.amd.aparapi.dumpFlags=true ^ - -Dcom.amd.aparapi.enableInstructionDecodeViewer=false ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;mandel.jar ^ - com.amd.aparapi.sample.mandel.Main - - diff --git a/samples/mandel/mandel-agent.sh b/samples/mandel/mandel-agent.sh deleted file mode 100644 index 96ad67d8..00000000 --- a/samples/mandel/mandel-agent.sh +++ /dev/null @@ -1,7 +0,0 @@ -java\ - -agentpath:../../com.amd.aparapi.jni/dist/libaparapi_x86_64.so\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.useAgent=true\ - -Dcom.amd.aparapi.executionMode=$1\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:mandel.jar\ - com.amd.aparapi.sample.mandel.Main diff --git a/samples/mandel/mandel.bat b/samples/mandel/mandel.bat deleted file mode 100644 index 22609363..00000000 --- a/samples/mandel/mandel.bat +++ /dev/null @@ -1,14 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.logLevel=OFF^ - -Dcom.amd.aparapi.enableVerboseJNI=false ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -Dcom.amd.aparapi.enableVerboseJNIOpenCLResourceTracking=false ^ - -Dcom.amd.aparapi.dumpFlags=true ^ - -Dcom.amd.aparapi.enableInstructionDecodeViewer=false ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;mandel.jar ^ - com.amd.aparapi.sample.mandel.Main - - diff --git a/samples/mandel/mandel.sh b/samples/mandel/mandel.sh deleted file mode 100644 index 892969df..00000000 --- a/samples/mandel/mandel.sh +++ /dev/null @@ -1,5 +0,0 @@ -java\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.executionMode=$1\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:mandel.jar\ - com.amd.aparapi.sample.mandel.Main diff --git a/samples/mandel/mandel2D.bat b/samples/mandel/mandel2D.bat deleted file mode 100644 index 620df5ae..00000000 --- a/samples/mandel/mandel2D.bat +++ /dev/null @@ -1,9 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -Dcom.amd.aparapi.enableShowGeneratedOpenCL=true ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;mandel.jar ^ - com.amd.aparapi.sample.mandel.Main2D - - diff --git a/samples/mandel/mandel2D.sh b/samples/mandel/mandel2D.sh deleted file mode 100644 index 238ab197..00000000 --- a/samples/mandel/mandel2D.sh +++ /dev/null @@ -1,5 +0,0 @@ -java\ - -Djava.library.path=../../com.amd.aparapi.jni/dist\ - -Dcom.amd.aparapi.executionMode=$1\ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:mandel.jar\ - com.amd.aparapi.sample.mandel.Main2D diff --git a/samples/mandel/src/com/amd/aparapi/sample/mandel/Main.java b/samples/mandel/src/com/amd/aparapi/sample/mandel/Main.java deleted file mode 100644 index 8ad4a7a7..00000000 --- a/samples/mandel/src/com/amd/aparapi/sample/mandel/Main.java +++ /dev/null @@ -1,299 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.mandel; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; -import java.util.List; - -import javax.swing.JComponent; -import javax.swing.JFrame; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which displays a view of the Mandelbrot set and lets the user zoom in to a particular point. - * - * When the user clicks on the view, this example application will zoom in to the clicked point and zoom out there after. - * On GPU, additional computing units will offer a better viewing experience. On the other hand on CPU, this example - * application might suffer with sub-optimal frame refresh rate as compared to GPU. - * - * @author gfrost - * - */ - -public class Main{ - - /** - * An Aparapi Kernel implementation for creating a scaled view of the mandelbrot set. - * - * @author gfrost - * - */ - - public static class MandelKernel extends Kernel{ - - /** RGB buffer used to store the Mandelbrot image. This buffer holds (width * height) RGB values. */ - final private int rgb[]; - - /** Mandelbrot image width. */ - final private int width; - - /** Mandelbrot image height. */ - final private int height; - - /** Maximum iterations for Mandelbrot. */ - final private int maxIterations = 64; - - /** Palette which maps iteration values to RGB values. */ - @Constant final private int pallette[] = new int[maxIterations + 1]; - - /** Mutable values of scale, offsetx and offsety so that we can modify the zoom level and position of a view. */ - private float scale = .0f; - - private float offsetx = .0f; - - private float offsety = .0f; - - /** - * Initialize the Kernel. - * - * @param _width Mandelbrot image width - * @param _height Mandelbrot image height - * @param _rgb Mandelbrot image RGB buffer - * @param _pallette Mandelbrot image palette - */ - public MandelKernel(int _width, int _height, int[] _rgb) { - //Initialize palette values - for (int i = 0; i < maxIterations; i++) { - final float h = i / (float) maxIterations; - final float b = 1.0f - (h * h); - pallette[i] = Color.HSBtoRGB(h, 1f, b); - } - - width = _width; - height = _height; - rgb = _rgb; - - } - - public int getCount(float x, float y) { - int count = 0; - - float zx = x; - float zy = y; - float new_zx = 0f; - - // Iterate until the algorithm converges or until maxIterations are reached. - while ((count < maxIterations) && (((zx * zx) + (zy * zy)) < 8)) { - new_zx = ((zx * zx) - (zy * zy)) + x; - zy = (2 * zx * zy) + y; - zx = new_zx; - count++; - } - - return count; - } - - @Override public void run() { - - /** Determine which RGB value we are going to process (0..RGB.length). */ - final int gid = getGlobalId(); - - /** Translate the gid into an x an y value. */ - final float x = ((((gid % width) * scale) - ((scale / 2) * width)) / width) + offsetx; - - final float y = ((((gid / width) * scale) - ((scale / 2) * height)) / height) + offsety; - - int count = getCount(x, y); - - // Pull the value out of the palette for this iteration count. - rgb[gid] = pallette[count]; - } - - public void setScaleAndOffset(float _scale, float _offsetx, float _offsety) { - offsetx = _offsetx; - offsety = _offsety; - scale = _scale; - } - - } - - /** User selected zoom-in point on the Mandelbrot view. */ - public static volatile Point to = null; - - @SuppressWarnings("serial") public static void main(String[] _args) { - - final JFrame frame = new JFrame("MandelBrot"); - - /** Width of Mandelbrot view. */ - final int width = 768; - - /** Height of Mandelbrot view. */ - final int height = 768; - - /** Mandelbrot image height. */ - final Range range = Range.create(width * height); - - /** Image for Mandelbrot view. */ - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - final BufferedImage offscreen = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - // Draw Mandelbrot image - final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - - g.drawImage(image, 0, 0, width, height, this); - } - }; - - // Set the size of JComponent which displays Mandelbrot image - viewer.setPreferredSize(new Dimension(width, height)); - - final Object doorBell = new Object(); - - // Mouse listener which reads the user clicked zoom-in point on the Mandelbrot view - viewer.addMouseListener(new MouseAdapter(){ - @Override public void mouseClicked(MouseEvent e) { - to = e.getPoint(); - synchronized (doorBell) { - doorBell.notify(); - } - } - }); - - // Swing housework to create the frame - frame.getContentPane().add(viewer); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - - // Extract the underlying RGB buffer from the image. - // Pass this to the kernel so it operates directly on the RGB buffer of the image - final int[] rgb = ((DataBufferInt) offscreen.getRaster().getDataBuffer()).getData(); - final int[] imageRgb = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); - // Create a Kernel passing the size, RGB buffer and the palette. - final MandelKernel kernel = new MandelKernel(width, height, rgb); - - final float defaultScale = 3f; - - // Set the default scale and offset, execute the kernel and force a repaint of the viewer. - kernel.setScaleAndOffset(defaultScale, -1f, 0f); - kernel.execute(range); - - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - - // Report target execution mode: GPU or JTP (Java Thread Pool). - System.out.println("Execution mode=" + kernel.getExecutionMode()); - - // Window listener to dispose Kernel resources on user exit. - frame.addWindowListener(new WindowAdapter(){ - @Override public void windowClosing(WindowEvent _windowEvent) { - kernel.dispose(); - System.exit(0); - } - }); - - // Wait until the user selects a zoom-in point on the Mandelbrot view. - while (true) { - - // Wait for the user to click somewhere - while (to == null) { - synchronized (doorBell) { - try { - doorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - } - - float x = -1f; - float y = 0f; - float scale = defaultScale; - final float tox = ((float) (to.x - (width / 2)) / width) * scale; - final float toy = ((float) (to.y - (height / 2)) / height) * scale; - - // This is how many frames we will display as we zoom in and out. - final int frames = 128; - final long startMillis = System.currentTimeMillis(); - for (int sign = -1; sign < 2; sign += 2) { - for (int i = 0; i < (frames - 4); i++) { - scale = scale + ((sign * defaultScale) / frames); - x = x - (sign * (tox / frames)); - y = y - (sign * (toy / frames)); - - // Set the scale and offset, execute the kernel and force a repaint of the viewer. - kernel.setScaleAndOffset(scale, x, y); - kernel.execute(range); - final List profileInfo = kernel.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " - + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - } - } - - final long elapsedMillis = System.currentTimeMillis() - startMillis; - System.out.println("FPS = " + ((frames * 1000) / elapsedMillis)); - - // Reset zoom-in point. - to = null; - - } - - } - -} diff --git a/samples/mandel/src/com/amd/aparapi/sample/mandel/Main2D.java b/samples/mandel/src/com/amd/aparapi/sample/mandel/Main2D.java deleted file mode 100644 index 65c62320..00000000 --- a/samples/mandel/src/com/amd/aparapi/sample/mandel/Main2D.java +++ /dev/null @@ -1,279 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.mandel; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.awt.image.BufferedImage; -import java.awt.image.DataBufferInt; -import java.util.List; - -import javax.swing.JComponent; -import javax.swing.JFrame; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.ProfileInfo; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which displays a view of the Mandelbrot set and lets the user zoom in to a particular point. - * - * When the user clicks on the view, this example application will zoom in to the clicked point and zoom out there after. - * On GPU, additional computing units will offer a better viewing experience. On the other hand on CPU, this example - * application might suffer with sub-optimal frame refresh rate as compared to GPU. - * - * @author gfrost - * - */ - -public class Main2D{ - - /** - * An Aparapi Kernel implementation for creating a scaled view of the mandelbrot set. - * - * @author gfrost - * - */ - - public static class MandelKernel extends Kernel{ - - /** RGB buffer used to store the Mandelbrot image. This buffer holds (width * height) RGB values. */ - final private int rgb[]; - - /** Maximum iterations we will check for. */ - final private int maxIterations = 64; - - /** Palette maps iteration values to RGB values. */ - @Constant final private int pallette[] = new int[maxIterations + 1]; - - /** Mutable values of scale, offsetx and offsety so that we can modify the zoom level and position of a view. */ - private float scale = .0f; - - private float offsetx = .0f; - - private float offsety = .0f; - - /** - * Initialize the Kernel. - * - * @param _width Mandelbrot image width - * @param _height Mandelbrot image height - * @param _rgb Mandelbrot image RGB buffer - * @param _pallette Mandelbrot image palette - */ - public MandelKernel(int[] _rgb) { - rgb = _rgb; - - //Initialize palette - for (int i = 0; i < maxIterations; i++) { - final float h = i / (float) maxIterations; - final float b = 1.0f - (h * h); - pallette[i] = Color.HSBtoRGB(h, 1f, b); - } - - } - - @Override public void run() { - - /** Determine which RGB value we are going to process (0..RGB.length). */ - final int gid = (getGlobalId(1) * getGlobalSize(0)) + getGlobalId(0); - - /** Translate the gid into an x an y value. */ - final float x = (((getGlobalId(0) * scale) - ((scale / 2) * getGlobalSize(0))) / getGlobalSize(0)) + offsetx; - - final float y = (((getGlobalId(1) * scale) - ((scale / 2) * getGlobalSize(1))) / getGlobalSize(1)) + offsety; - - int count = 0; - - float zx = x; - float zy = y; - float new_zx = 0f; - - // Iterate until the algorithm converges or until maxIterations are reached. - while ((count < maxIterations) && (((zx * zx) + (zy * zy)) < 8)) { - new_zx = ((zx * zx) - (zy * zy)) + x; - zy = (2 * zx * zy) + y; - zx = new_zx; - count++; - } - - // Pull the value out of the palette for this iteration count. - rgb[gid] = pallette[count]; - } - - public void setScaleAndOffset(float _scale, float _offsetx, float _offsety) { - offsetx = _offsetx; - offsety = _offsety; - scale = _scale; - } - - } - - /** User selected zoom-in point on the Mandelbrot view. */ - public static volatile Point to = null; - - @SuppressWarnings("serial") public static void main(String[] _args) { - - final JFrame frame = new JFrame("MandelBrot"); - - /** Mandelbrot image height. */ - final Range range = Range.create2D(768, 768); - System.out.println("range= " + range); - - /** Image for Mandelbrot view. */ - final BufferedImage image = new BufferedImage(range.getGlobalSize(0), range.getGlobalSize(1), BufferedImage.TYPE_INT_RGB); - final BufferedImage offscreen = new BufferedImage(range.getGlobalSize(0), range.getGlobalSize(1), BufferedImage.TYPE_INT_RGB); - // Draw Mandelbrot image - final JComponent viewer = new JComponent(){ - @Override public void paintComponent(Graphics g) { - - g.drawImage(image, 0, 0, range.getGlobalSize(0), range.getGlobalSize(1), this); - } - }; - - // Set the size of JComponent which displays Mandelbrot image - viewer.setPreferredSize(new Dimension(range.getGlobalSize(0), range.getGlobalSize(1))); - - final Object doorBell = new Object(); - - // Mouse listener which reads the user clicked zoom-in point on the Mandelbrot view - viewer.addMouseListener(new MouseAdapter(){ - @Override public void mouseClicked(MouseEvent e) { - to = e.getPoint(); - synchronized (doorBell) { - doorBell.notify(); - } - } - }); - - // Swing housework to create the frame - frame.getContentPane().add(viewer); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - - // Extract the underlying RGB buffer from the image. - // Pass this to the kernel so it operates directly on the RGB buffer of the image - final int[] rgb = ((DataBufferInt) offscreen.getRaster().getDataBuffer()).getData(); - final int[] imageRgb = ((DataBufferInt) image.getRaster().getDataBuffer()).getData(); - // Create a Kernel passing the size, RGB buffer and the palette. - final MandelKernel kernel = new MandelKernel(rgb); - - final float defaultScale = 3f; - - // Set the default scale and offset, execute the kernel and force a repaint of the viewer. - kernel.setScaleAndOffset(defaultScale, -1f, 0f); - kernel.execute(range); - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - - // Report target execution mode: GPU or JTP (Java Thread Pool). - System.out.println("Execution mode=" + kernel.getExecutionMode()); - - // Window listener to dispose Kernel resources on user exit. - frame.addWindowListener(new WindowAdapter(){ - @Override public void windowClosing(WindowEvent _windowEvent) { - kernel.dispose(); - System.exit(0); - } - }); - - // Wait until the user selects a zoom-in point on the Mandelbrot view. - while (true) { - - // Wait for the user to click somewhere - while (to == null) { - synchronized (doorBell) { - try { - doorBell.wait(); - } catch (final InterruptedException ie) { - ie.getStackTrace(); - } - } - } - - float x = -1f; - float y = 0f; - float scale = defaultScale; - final float tox = ((float) (to.x - (range.getGlobalSize(0) / 2)) / range.getGlobalSize(0)) * scale; - final float toy = ((float) (to.y - (range.getGlobalSize(1) / 2)) / range.getGlobalSize(1)) * scale; - - // This is how many frames we will display as we zoom in and out. - final int frames = 128; - final long startMillis = System.currentTimeMillis(); - for (int sign = -1; sign < 2; sign += 2) { - for (int i = 0; i < (frames - 4); i++) { - scale = scale + ((sign * defaultScale) / frames); - x = x - (sign * (tox / frames)); - y = y - (sign * (toy / frames)); - - // Set the scale and offset, execute the kernel and force a repaint of the viewer. - kernel.setScaleAndOffset(scale, x, y); - kernel.execute(range); - final List profileInfo = kernel.getProfileInfo(); - if ((profileInfo != null) && (profileInfo.size() > 0)) { - for (final ProfileInfo p : profileInfo) { - System.out.print(" " + p.getType() + " " + p.getLabel() + " " + (p.getStart() / 1000) + " .. " - + (p.getEnd() / 1000) + " " + ((p.getEnd() - p.getStart()) / 1000) + "us"); - } - System.out.println(); - } - - System.arraycopy(rgb, 0, imageRgb, 0, rgb.length); - viewer.repaint(); - } - } - - final long elapsedMillis = System.currentTimeMillis() - startMillis; - System.out.println("FPS = " + ((frames * 1000) / elapsedMillis)); - - // Reset zoom-in point. - to = null; - - } - - } - -} diff --git a/samples/mdarray/.classpath b/samples/mdarray/.classpath deleted file mode 100644 index 43bd144c..00000000 --- a/samples/mdarray/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/mdarray/.project b/samples/mdarray/.project deleted file mode 100644 index 2273fb14..00000000 --- a/samples/mdarray/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - mdarray - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/mdarray/build.xml b/samples/mdarray/build.xml deleted file mode 100644 index fca33590..00000000 --- a/samples/mdarray/build.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/mdarray/mdarray.bat b/samples/mdarray/mdarray.bat deleted file mode 100644 index 944fcf1f..00000000 --- a/samples/mdarray/mdarray.bat +++ /dev/null @@ -1,8 +0,0 @@ -@echo off - -java ^ - -Djava.library.path=..\..\com.amd.aparapi.jni\dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -Dcom.amd.aparapi.enableProfiling=false ^ - -classpath ..\..\com.amd.aparapi\dist\aparapi.jar;mdarray.jar ^ - gov.pnnl.aparapi.sample.mdarray.MDArray \ No newline at end of file diff --git a/samples/mdarray/mdarray.sh b/samples/mdarray/mdarray.sh deleted file mode 100644 index 1bebe5a8..00000000 --- a/samples/mdarray/mdarray.sh +++ /dev/null @@ -1 +0,0 @@ -java -Djava.library.path=../../com.amd.aparapi.jni/dist -cp ../../com.amd.aparapi/dist/aparapi.jar:./mdarray.jar gov.pnnl.aparapi.sample.mdarray.MDArray diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul1D.java deleted file mode 100644 index 4ffe6240..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class BMatMul1D extends Kernel{ - byte[] A; - - byte[] B; - - byte[] C; - - int N; - - public BMatMul1D(byte[] A, byte[] B, byte[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] += (byte) (A[i * N + k] * B[k * N + j]); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul2D.java deleted file mode 100644 index 1839d82b..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class BMatMul2D extends Kernel{ - byte[][] A; - - byte[][] B; - - byte[][] C; - - int N; - - public BMatMul2D(byte[][] A, byte[][] B, byte[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] += (byte) (A[i][k] * B[k][j]); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul3D.java deleted file mode 100644 index eb27bf76..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/BMatMul3D.java +++ /dev/null @@ -1,32 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class BMatMul3D extends Kernel{ - byte[][][] A; - - byte[][][] B; - - byte[][][] C; - - int N; - - public BMatMul3D(byte[][][] A, byte[][][] B, byte[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - int a0 = A.length; - int a1 = A[0].length; - int a2 = A[0][0].length; - for (int l = 0; l < N; l++) { - C[i][j][k] += (byte) (A[i][j][l] * B[l][j][k]); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul1D.java deleted file mode 100644 index f852a900..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class DMatMul1D extends Kernel{ - double[] A; - - double[] B; - - double[] C; - - int N; - - public DMatMul1D(double[] A, double[] B, double[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] += A[i * N + k] * B[k * N + j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul2D.java deleted file mode 100644 index e46e8f6e..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class DMatMul2D extends Kernel{ - double[][] A; - - double[][] B; - - double[][] C; - - int N; - - public DMatMul2D(double[][] A, double[][] B, double[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul3D.java deleted file mode 100644 index 8641f2ff..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/DMatMul3D.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class DMatMul3D extends Kernel{ - double[][][] A; - - double[][][] B; - - double[][][] C; - - int N; - - public DMatMul3D(double[][][] A, double[][][] B, double[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul1D.java deleted file mode 100644 index 15a2fa21..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class FMatMul1D extends Kernel{ - float[] A; - - float[] B; - - float[] C; - - int N; - - public FMatMul1D(float[] A, float[] B, float[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] += A[i * N + k] * B[k * N + j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul2D.java deleted file mode 100644 index 21e66103..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class FMatMul2D extends Kernel{ - float[][] A; - - float[][] B; - - float[][] C; - - int N; - - public FMatMul2D(float[][] A, float[][] B, float[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul3D.java deleted file mode 100644 index b5af1848..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/FMatMul3D.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class FMatMul3D extends Kernel{ - float[][][] A; - - float[][][] B; - - float[][][] C; - - int N; - - public FMatMul3D(float[][][] A, float[][][] B, float[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul1D.java deleted file mode 100644 index 4760c086..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class IMatMul1D extends Kernel{ - int[] A; - - int[] B; - - int[] C; - - int N; - - public IMatMul1D(int[] A, int[] B, int[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] += A[i * N + k] * B[k * N + j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul2D.java deleted file mode 100644 index 4493633b..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class IMatMul2D extends Kernel{ - int[][] A; - - int[][] B; - - int[][] C; - - int N; - - public IMatMul2D(int[][] A, int[][] B, int[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul3D.java deleted file mode 100644 index a4658b65..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/IMatMul3D.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class IMatMul3D extends Kernel{ - int[][][] A; - - int[][][] B; - - int[][][] C; - - int N; - - public IMatMul3D(int[][][] A, int[][][] B, int[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul1D.java deleted file mode 100644 index 9d81d1e8..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class LMatMul1D extends Kernel{ - long[] A; - - long[] B; - - long[] C; - - int N; - - public LMatMul1D(long[] A, long[] B, long[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] += A[i * N + k] * B[k * N + j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul2D.java deleted file mode 100644 index d8f8b8e5..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class LMatMul2D extends Kernel{ - long[][] A; - - long[][] B; - - long[][] C; - - int N; - - public LMatMul2D(long[][] A, long[][] B, long[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul3D.java deleted file mode 100644 index 46ec3c8f..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/LMatMul3D.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class LMatMul3D extends Kernel{ - long[][][] A; - - long[][][] B; - - long[][][] C; - - int N; - - public LMatMul3D(long[][][] A, long[][][] B, long[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/MDArray.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/MDArray.java deleted file mode 100644 index 8e80c59e..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/MDArray.java +++ /dev/null @@ -1,1281 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; - -import com.amd.aparapi.Kernel; - -class MDArray { - - static int N = 1 << 10; - - static int M = 1 << 5; - - public static void main(String[] args) { - System.out.println("boolean 1D"); - Zrun1D(); - System.out.println("byte 1D"); - Brun1D(); - System.out.println("short 1D"); - Srun1D(); - System.out.println("int 1D"); - Irun1D(); - System.out.println("long 1D"); - Lrun1D(); - System.out.println("float 1D"); - Frun1D(); - System.out.println("double 1D"); - Drun1D(); - System.out.println("boolean 2D"); - Zrun2D(); - System.out.println("byte 2D"); - Brun2D(); - System.out.println("short 2D"); - Srun2D(); - System.out.println("int 2D"); - Irun2D(); - System.out.println("long 2D"); - Lrun2D(); - System.out.println("float 2D"); - Frun2D(); - System.out.println("double 2D"); - Drun2D(); - System.out.println("boolean 3D"); - Zrun3D(); - System.out.println("byte 3D"); - Brun3D(); - System.out.println("short 3D"); - Srun3D(); - System.out.println("int 3D"); - Irun3D(); - System.out.println("long 3D"); - Lrun3D(); - System.out.println("float 3D"); - Frun3D(); - System.out.println("double 3D"); - Drun3D(); - } - - private static boolean[] matMull(boolean[] A, boolean[] B, int N) { - final boolean[] C = new boolean[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] ^= A[(i * N) + k] & B[(k * N) + j]; - } - } - } - return C; - } - - private static byte[] matMull(byte[] A, byte[] B, int N) { - final byte[] C = new byte[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] += (byte) (A[(i * N) + k] * B[(k * N) + j]); - } - } - } - return C; - } - - private static short[] matMull(short[] A, short[] B, int N) { - final short[] C = new short[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] += (short) (A[(i * N) + k] * B[(k * N) + j]); - } - } - } - return C; - } - - private static int[] matMull(int[] A, int[] B, int N) { - final int[] C = new int[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] += A[(i * N) + k] * B[(k * N) + j]; - } - } - } - return C; - } - - private static long[] matMull(long[] A, long[] B, int N) { - final long[] C = new long[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] += A[(i * N) + k] * B[(k * N) + j]; - } - } - } - return C; - } - - private static float[] matMull(float[] A, float[] B, int N) { - final float[] C = new float[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] += A[(i * N) + k] * B[(k * N) + j]; - } - } - } - return C; - } - - private static double[] matMull(double[] A, double[] B, int N) { - final double[] C = new double[N * N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[(i * N) + j] += A[(i * N) + k] * B[(k * N) + j]; - } - } - } - return C; - } - - private static boolean[][] matMull(boolean[][] A, boolean[][] B, int N) { - final boolean[][] C = new boolean[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] ^= A[i][k] & B[k][j]; - } - } - } - return C; - } - - private static byte[][] matMull(byte[][] A, byte[][] B, int N) { - final byte[][] C = new byte[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] += (byte) (A[i][k] * B[k][j]); - } - } - } - return C; - } - - private static short[][] matMull(short[][] A, short[][] B, int N) { - final short[][] C = new short[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] += (short) (A[i][k] * B[k][j]); - } - } - } - return C; - } - - private static int[][] matMull(int[][] A, int[][] B, int N) { - final int[][] C = new int[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } - } - return C; - } - - private static long[][] matMull(long[][] A, long[][] B, int N) { - final long[][] C = new long[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } - } - return C; - } - - private static float[][] matMull(float[][] A, float[][] B, int N) { - final float[][] C = new float[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } - } - return C; - } - - private static double[][] matMull(double[][] A, double[][] B, int N) { - final double[][] C = new double[N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - C[i][j] += A[i][k] * B[k][j]; - } - } - } - return C; - } - - private static boolean[][][] matMull(boolean[][][] A, boolean[][][] B, int N) { - final boolean[][][] C = new boolean[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] ^= A[i][j][l] & B[l][j][k]; - } - } - } - } - return C; - } - - private static byte[][][] matMull(byte[][][] A, byte[][][] B, int N) { - final byte[][][] C = new byte[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] += (byte) (A[i][j][l] * B[l][j][k]); - } - } - } - } - return C; - } - - private static short[][][] matMull(short[][][] A, short[][][] B, int N) { - final short[][][] C = new short[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] += (short) (A[i][j][l] * B[l][j][k]); - } - } - } - } - return C; - } - - private static int[][][] matMull(int[][][] A, int[][][] B, int N) { - final int[][][] C = new int[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } - } - } - return C; - } - - private static long[][][] matMull(long[][][] A, long[][][] B, int N) { - final long[][][] C = new long[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } - } - } - return C; - } - - private static float[][][] matMull(float[][][] A, float[][][] B, int N) { - final float[][][] C = new float[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } - } - } - return C; - } - - private static double[][][] matMull(double[][][] A, double[][][] B, int N) { - final double[][][] C = new double[N][N][N]; - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - for (int k = 0; k < N; k++) { - for (int l = 0; l < N; l++) { - C[i][j][k] += A[i][j][l] * B[l][j][k]; - } - } - } - } - return C; - } - - private static boolean checkResults(boolean[] cpu, boolean[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(byte[] cpu, byte[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(short[] cpu, short[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(int[] cpu, int[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(long[] cpu, long[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(float[] cpu, float[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(double[] cpu, double[] gpu) { - for (int i = 0; i < cpu.length; i++) { - if (cpu[i] != gpu[i]) { - return false; - } - } - return true; - } - - private static boolean checkResults(boolean[][] cpu, boolean[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(byte[][] cpu, byte[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(short[][] cpu, short[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(int[][] cpu, int[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(long[][] cpu, long[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(float[][] cpu, float[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(double[][] cpu, double[][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - if (cpu[i][j] != gpu[i][j]) { - return false; - } - } - } - return true; - } - - private static boolean checkResults(boolean[][][] cpu, boolean[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - private static boolean checkResults(byte[][][] cpu, byte[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - private static boolean checkResults(short[][][] cpu, short[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - private static boolean checkResults(int[][][] cpu, int[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - private static boolean checkResults(long[][][] cpu, long[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - private static boolean checkResults(float[][][] cpu, float[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - private static boolean checkResults(double[][][] cpu, double[][][] gpu) { - for (int i = 0; i < cpu.length; i++) { - for (int j = 0; j < cpu[i].length; j++) { - for (int k = 0; k < cpu[i][j].length; k++) { - if (cpu[i][j][k] != gpu[i][j][k]) { - return false; - } - } - } - } - return true; - } - - public static void Zrun1D() { - final boolean[] A = new boolean[N * N]; - final boolean[] B = new boolean[N * N]; - final boolean[] gpu = new boolean[N * N]; - boolean[] cpu = new boolean[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = ((i % 2) == 0) ^ ((j % 2) == 0); - B[(i * N) + j] = ((i % 2) == 0) & ((j % 2) == 0); - cpu[(i * N) + j] = false; - gpu[(i * N) + j] = false; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new ZMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Brun1D() { - final byte[] A = new byte[N * N]; - final byte[] B = new byte[N * N]; - final byte[] gpu = new byte[N * N]; - byte[] cpu = new byte[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = (byte) (i + j); - B[(i * N) + j] = (byte) (i - j); - cpu[(i * N) + j] = (byte) 0; - gpu[(i * N) + j] = (byte) 0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new BMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Srun1D() { - final short[] A = new short[N * N]; - final short[] B = new short[N * N]; - final short[] gpu = new short[N * N]; - short[] cpu = new short[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = (short) (i + j); - B[(i * N) + j] = (short) (i - j); - cpu[(i * N) + j] = (short) 0; - gpu[(i * N) + j] = (short) 0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new SMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Irun1D() { - final int[] A = new int[N * N]; - final int[] B = new int[N * N]; - final int[] gpu = new int[N * N]; - int[] cpu = new int[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = i + j; - B[(i * N) + j] = i - j; - cpu[(i * N) + j] = 0; - gpu[(i * N) + j] = 0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new IMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Lrun1D() { - final long[] A = new long[N * N]; - final long[] B = new long[N * N]; - final long[] gpu = new long[N * N]; - long[] cpu = new long[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = i + j; - B[(i * N) + j] = i - j; - cpu[(i * N) + j] = 0l; - gpu[(i * N) + j] = 0l; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new LMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Frun1D() { - final float[] A = new float[N * N]; - final float[] B = new float[N * N]; - final float[] gpu = new float[N * N]; - float[] cpu = new float[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = i + j; - B[(i * N) + j] = i - j; - cpu[(i * N) + j] = 0.0f; - gpu[(i * N) + j] = 0.0f; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new FMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Drun1D() { - final double[] A = new double[N * N]; - final double[] B = new double[N * N]; - final double[] gpu = new double[N * N]; - double[] cpu = new double[N * N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[(i * N) + j] = i + j; - B[(i * N) + j] = i - j; - cpu[(i * N) + j] = 0.0; - gpu[(i * N) + j] = 0.0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new DMatMul1D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Zrun2D() { - final boolean[][] A = new boolean[N][N]; - final boolean[][] B = new boolean[N][N]; - final boolean[][] gpu = new boolean[N][N]; - boolean[][] cpu = new boolean[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = ((i % 2) == 0) ^ ((j % 2) == 0); - B[i][j] = ((i % 2) == 0) & ((j % 2) == 0); - cpu[i][j] = false; - gpu[i][j] = false; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new ZMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Brun2D() { - final byte[][] A = new byte[N][N]; - final byte[][] B = new byte[N][N]; - final byte[][] gpu = new byte[N][N]; - byte[][] cpu = new byte[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = (byte) (i + j); - B[i][j] = (byte) (i - j); - cpu[i][j] = (byte) 0; - gpu[i][j] = (byte) 0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new BMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Srun2D() { - final short[][] A = new short[N][N]; - final short[][] B = new short[N][N]; - final short[][] gpu = new short[N][N]; - short[][] cpu = new short[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = (short) (i + j); - B[i][j] = (short) (i - j); - cpu[i][j] = (short) 0; - gpu[i][j] = (short) 0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new SMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Irun2D() { - final int[][] A = new int[N][N]; - final int[][] B = new int[N][N]; - final int[][] gpu = new int[N][N]; - int[][] cpu = new int[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = i + j; - B[i][j] = i - j; - cpu[i][j] = 0; - gpu[i][j] = 0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new IMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Lrun2D() { - final long[][] A = new long[N][N]; - final long[][] B = new long[N][N]; - final long[][] gpu = new long[N][N]; - long[][] cpu = new long[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = i + j; - B[i][j] = i - j; - cpu[i][j] = 0l; - gpu[i][j] = 0l; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new LMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Frun2D() { - final float[][] A = new float[N][N]; - final float[][] B = new float[N][N]; - final float[][] gpu = new float[N][N]; - float[][] cpu = new float[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = i + j; - B[i][j] = i - j; - cpu[i][j] = 0.0f; - gpu[i][j] = 0.0f; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new FMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Drun2D() { - final double[][] A = new double[N][N]; - final double[][] B = new double[N][N]; - final double[][] gpu = new double[N][N]; - double[][] cpu = new double[N][N]; - - for (int i = 0; i < N; i++) { - for (int j = 0; j < N; j++) { - A[i][j] = i + j; - B[i][j] = i - j; - cpu[i][j] = 0.0; - gpu[i][j] = 0.0; - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new DMatMul2D(A, B, gpu, N); - kernel.execute(N * N); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, N); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Zrun3D() { - final boolean[][][] A = new boolean[M][M][M]; - final boolean[][][] B = new boolean[M][M][M]; - final boolean[][][] gpu = new boolean[M][M][M]; - boolean[][][] cpu = new boolean[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = ((i % 2) == 0) ^ (((j % 2) == 0) & ((k % 2) == 0)); - B[i][j][k] = (((i % 2) == 0) & ((j % 2) == 0)) ^ ((k % 2) == 0); - ; - cpu[i][j][k] = false; - gpu[i][j][k] = false; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new ZMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Brun3D() { - final byte[][][] A = new byte[M][M][M]; - final byte[][][] B = new byte[M][M][M]; - final byte[][][] gpu = new byte[M][M][M]; - byte[][][] cpu = new byte[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = (byte) (i + j + k); - B[i][j][k] = (byte) ((i - j) + k); - cpu[i][j][k] = (byte) 0; - gpu[i][j][k] = (byte) 0; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new BMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Srun3D() { - final short[][][] A = new short[M][M][M]; - final short[][][] B = new short[M][M][M]; - final short[][][] gpu = new short[M][M][M]; - short[][][] cpu = new short[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = (short) (i + j + k); - B[i][j][k] = (short) ((i - j) + k); - cpu[i][j][k] = (short) 0; - gpu[i][j][k] = (short) 0; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new SMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Irun3D() { - final int[][][] A = new int[M][M][M]; - final int[][][] B = new int[M][M][M]; - final int[][][] gpu = new int[M][M][M]; - int[][][] cpu = new int[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = i + j + k; - B[i][j][k] = (i - j) + k; - cpu[i][j][k] = 0; - gpu[i][j][k] = 0; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new IMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Lrun3D() { - final long[][][] A = new long[M][M][M]; - final long[][][] B = new long[M][M][M]; - final long[][][] gpu = new long[M][M][M]; - long[][][] cpu = new long[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = i + j + k; - B[i][j][k] = (i - j) + k; - cpu[i][j][k] = 0l; - gpu[i][j][k] = 0l; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new LMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Frun3D() { - final float[][][] A = new float[M][M][M]; - final float[][][] B = new float[M][M][M]; - final float[][][] gpu = new float[M][M][M]; - float[][][] cpu = new float[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = i + j + k; - B[i][j][k] = (i - j) + k; - cpu[i][j][k] = 0.0f; - gpu[i][j][k] = 0.0f; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new FMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } - - public static void Drun3D() { - final double[][][] A = new double[M][M][M]; - final double[][][] B = new double[M][M][M]; - final double[][][] gpu = new double[M][M][M]; - double[][][] cpu = new double[M][M][M]; - - for (int i = 0; i < M; i++) { - for (int j = 0; j < M; j++) { - for (int k = 0; k < M; k++) { - A[i][j][k] = i + j + k; - B[i][j][k] = (i - j) + k; - cpu[i][j][k] = 0.0; - gpu[i][j][k] = 0.0; - } - } - } - - long gs = System.currentTimeMillis(); - final Kernel kernel = new DMatMul3D(A, B, gpu, M); - kernel.execute(M * M * M); - gs = System.currentTimeMillis() - gs; - - long cs = System.currentTimeMillis(); - cpu = matMull(A, B, M); - cs = System.currentTimeMillis() - cs; - - System.out.println("gpu time: " + gs + "\ncpu time: " + cs); - System.out.print("valid? "); - - if (checkResults(cpu, gpu)) { - System.out.println("yes"); - } else { - System.out.println("no"); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul1D.java deleted file mode 100644 index 858be09e..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class SMatMul1D extends Kernel{ - short[] A; - - short[] B; - - short[] C; - - int N; - - public SMatMul1D(short[] A, short[] B, short[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] += (short) (A[i * N + k] * B[k * N + j]); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul2D.java deleted file mode 100644 index 2ed216e5..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class SMatMul2D extends Kernel{ - short[][] A; - - short[][] B; - - short[][] C; - - int N; - - public SMatMul2D(short[][] A, short[][] B, short[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] += (short) (A[i][k] * B[k][j]); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul3D.java deleted file mode 100644 index 95de3a37..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/SMatMul3D.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class SMatMul3D extends Kernel{ - short[][][] A; - - short[][][] B; - - short[][][] C; - - int N; - - public SMatMul3D(short[][][] A, short[][][] B, short[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - for (int l = 0; l < N; l++) { - C[i][j][k] += (short) (A[i][j][l] * B[l][j][k]); - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul1D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul1D.java deleted file mode 100644 index f28db2f6..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul1D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class ZMatMul1D extends Kernel{ - boolean[] A; - - boolean[] B; - - boolean[] C; - - int N; - - public ZMatMul1D(boolean[] A, boolean[] B, boolean[] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i * N + j] ^= A[i * N + k] & B[k * N + j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul2D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul2D.java deleted file mode 100644 index 75304d54..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul2D.java +++ /dev/null @@ -1,28 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class ZMatMul2D extends Kernel{ - boolean[][] A; - - boolean[][] B; - - boolean[][] C; - - int N; - - public ZMatMul2D(boolean[][] A, boolean[][] B, boolean[][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / N; - int j = id % N; - for (int k = 0; k < N; k++) { - C[i][j] ^= A[i][k] & B[k][j]; - } - } -} diff --git a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul3D.java b/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul3D.java deleted file mode 100644 index 6d63dfb6..00000000 --- a/samples/mdarray/src/gov/pnnl/aparapi/sample/mdarray/ZMatMul3D.java +++ /dev/null @@ -1,29 +0,0 @@ -package gov.pnnl.aparapi.sample.mdarray; -import com.amd.aparapi.Kernel; - -class ZMatMul3D extends Kernel{ - boolean[][][] A; - - boolean[][][] B; - - boolean[][][] C; - - int N; - - public ZMatMul3D(boolean[][][] A, boolean[][][] B, boolean[][][] C, int N) { - this.A = A; - this.B = B; - this.C = C; - this.N = N; - } - - @Override public void run() { - int id = getGlobalId(); - int i = id / (N * N); - int j = (id / N) % N; - int k = id % N; - for (int l = 0; l < N; l++) { - C[i][j][k] ^= A[i][j][l] & B[l][j][k]; - } - } -} diff --git a/samples/median/src/com/amd/aparapi/sample/median/MedianDemo.java b/samples/median/src/com/amd/aparapi/sample/median/MedianDemo.java deleted file mode 100644 index 2e938d75..00000000 --- a/samples/median/src/com/amd/aparapi/sample/median/MedianDemo.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.amd.aparapi.sample.median; - -import com.amd.aparapi.Kernel; - -import javax.imageio.*; -import javax.swing.*; -import java.awt.*; -import java.awt.image.*; -import java.io.*; - -/** - * Demonstrate use of __private namespaces and @NoCL annotations. - */ -public class MedianDemo { - public final static BufferedImage testImage; - - static { - try { - testImage = ImageIO.read(new File("C:\\dev\\aparapi_live\\aparapi\\samples\\convolution\\testcard.jpg")); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private static final boolean TEST_JTP = false; - - public static void main(String[] ignored) { - System.setProperty("com.amd.aparapi.enableShowGeneratedOpenCL", "true"); - int[] argbs = testImage.getRGB(0, 0, testImage.getWidth(), testImage.getHeight(), null, 0, testImage.getWidth()); - MedianKernel7x7 kernel = new MedianKernel7x7(); - kernel._imageTypeOrdinal = MedianKernel7x7.RGB; - kernel._sourceWidth = testImage.getWidth(); - kernel._sourceHeight = testImage.getHeight(); - kernel._sourcePixels = argbs; - kernel._destPixels = new int[argbs.length]; - if (TEST_JTP) { - kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - } - kernel.processImages(new MedianSettings(7)); - BufferedImage out = new BufferedImage(testImage.getWidth(), testImage.getHeight(), BufferedImage.TYPE_INT_RGB); - out.setRGB(0, 0, testImage.getWidth(), testImage.getHeight(), kernel._destPixels, 0, testImage.getWidth()); - ImageIcon icon1 = new ImageIcon(testImage); - JLabel label1 = new JLabel(icon1); - ImageIcon icon2 = new ImageIcon(out); - JLabel label2 = new JLabel(icon2); - JFrame frame = new JFrame("Test Median"); - frame.setLayout(new FlowLayout()); - frame.getContentPane().add(label1); - frame.getContentPane().add(label2); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setVisible(true); - - int reps = 20; - for (int rep = 0; rep < reps; ++rep) { - long start = System.nanoTime(); - kernel.processImages(new MedianSettings(7)); - long elapsed = System.nanoTime() - start; - System.out.println("elapsed = " + elapsed / 1000000f + "ms"); - } - } -} diff --git a/samples/median/src/com/amd/aparapi/sample/median/MedianKernel7x7.java b/samples/median/src/com/amd/aparapi/sample/median/MedianKernel7x7.java deleted file mode 100644 index 6cbece41..00000000 --- a/samples/median/src/com/amd/aparapi/sample/median/MedianKernel7x7.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.amd.aparapi.sample.median; - -import com.amd.aparapi.*; - -/** - * Provides support for pixel windows of size no greater than 49 (e.g. 7x7). - *

      - *

      Demonstrates use of __private array for (partial) sorting, also demonstrates @NoCl annotation for specialised use of ThreadLocal in JTP execution. - */ -public class MedianKernel7x7 extends Kernel { - public static final int CHANNEL_GRAY = -1; - public static final int CHANNEL_ALPHA = 0; - public static final int CHANNEL_RED = 1; - public static final int CHANNEL_GREEN = 2; - public static final int CHANNEL_BLUE = 3; - - protected static final int MONOCHROME = 0; - protected static final int RGB = 1; - protected static final int ARGB = 2; - - public static final int MAX_WINDOW_SIZE = 49; - - protected int _imageTypeOrdinal; - protected int[] _sourcePixels; - protected int _sourceWidth; - protected int _sourceHeight; - - protected int[] _destPixels; - - // NB could also use suffix naming instead of annotation ... field would be named _window_$private$49 - @PrivateMemorySpace(MAX_WINDOW_SIZE) private short[] _window = new short[MAX_WINDOW_SIZE]; - @NoCL private static ThreadLocal _threadLocalWindow = new ThreadLocal() { - @Override - protected short[] initialValue() { - return new short[MAX_WINDOW_SIZE]; - } - }; - protected int _windowWidth; - protected int _windowHeight; - - @NoCL - public void setUpWindow() { - _window = _threadLocalWindow.get(); - } - - public void processImages(MedianSettings settings) { - _windowWidth = settings.windowWidth; - _windowHeight = settings.windowHeight; - execute(_sourceWidth * _sourceHeight); - } - - @Override - public void run() { - setUpWindow(); - int index = getGlobalId(); - int x = index % _sourceWidth; - int y = index / _sourceWidth; - - int dx0 = -(_windowWidth / 2); - int dx1 = _windowWidth + dx0; - int dy0 = -(_windowHeight / 2); - int dy1 = _windowHeight + dy0; - - int windowX0 = max(0, x + dx0); - int windowX1 = min(_sourceWidth, x + dx1); - int windowY0 = max(0, y + dy0); - int windowY1 = min(_sourceHeight, y + dy1); - - int actualPixelCount = (windowX1 - windowX0) * (windowY1 - windowY0); - int medianPixel = 0; - - if (_imageTypeOrdinal == MONOCHROME) { - populateWindow(CHANNEL_GRAY, windowX0, windowX1, windowY0, windowY1); - medianPixel = median(actualPixelCount); - } else { - int alpha = 0xff000000; - if (_imageTypeOrdinal == ARGB) { - populateWindow(CHANNEL_ALPHA, windowX0, windowX1, windowY0, windowY1); - alpha = median(actualPixelCount); - } - populateWindow(CHANNEL_RED, windowX0, windowX1, windowY0, windowY1); - int red = median(actualPixelCount); - populateWindow(CHANNEL_GREEN, windowX0, windowX1, windowY0, windowY1); - int green = median(actualPixelCount); - populateWindow(CHANNEL_BLUE, windowX0, windowX1, windowY0, windowY1); - int blue = median(actualPixelCount); - medianPixel = alpha << 24 | red << 16 | green << 8 | blue; - } - - _destPixels[index] = medianPixel; - } - - protected void populateWindow(int channel, int windowX0, int windowX1, int windowY0, int windowY1) { - int windowIndex = 0; - for (int u = windowX0; u < windowX1; ++u) { - for (int v = windowY0; v < windowY1; ++v) { - int argb = _sourcePixels[u + _sourceWidth * v]; - int sourcePixel = valueForChannel(channel, argb); - setPixelWindowValue(windowIndex, (short) sourcePixel); - ++windowIndex; - } - } - } - - protected final int valueForChannel(int channel, int argb) { - int sourcePixel = 0; - if (channel == CHANNEL_GRAY) { - sourcePixel = argb; - } else if (channel == CHANNEL_ALPHA) { - sourcePixel = (0xff000000 & argb) >>> 24; - } else if (channel == CHANNEL_RED) { - sourcePixel = (0x00ff0000 & argb) >>> 16; - } else if (channel == CHANNEL_GREEN) { - sourcePixel = (0x0000ff00 & argb) >>> 8; - } else if (channel == CHANNEL_BLUE) { - sourcePixel = 0x000000ff & argb; - } - return sourcePixel; - } - - protected void setPixelWindowValue(int windowIndex, short value) { - _window[windowIndex] = value; - } - - /** - * Fast median based on the following algorithm - *

      -    *                   Author: Wirth, Niklaus
      -    *                    Title: Algorithms + data structures = programs
      -    *                Publisher: Englewood Cliffs: Prentice-Hall, 1976
      -    * 
      - */ - protected final int median(int actualPixelCount) { - int i, j, L, m; - short x; - - L = 0; - m = actualPixelCount - 1; - while (L < m) { - x = _window[(actualPixelCount / 2)]; - i = L; - j = m; - do { - while (_window[i] < x) { - i++; - } - while (x < _window[j]) { - j--; - } - if (i <= j) { - short temp = _window[i]; - _window[i] = _window[j]; - _window[j] = temp; - i++; - j--; - } - } while (i <= j); - - if (j < actualPixelCount / 2) { - L = i; - } - if (actualPixelCount / 2 < i) { - m = j; - } - } - return _window[(actualPixelCount / 2)]; - } -} diff --git a/samples/median/src/com/amd/aparapi/sample/median/MedianSettings.java b/samples/median/src/com/amd/aparapi/sample/median/MedianSettings.java deleted file mode 100644 index 0f79dc3d..00000000 --- a/samples/median/src/com/amd/aparapi/sample/median/MedianSettings.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.sample.median; - -public class MedianSettings { - public final int windowWidth; - public final int windowHeight; - - public MedianSettings(int windowSize) { - this(windowSize, windowSize); - } - - public MedianSettings(int windowWidth, int windowHeight) { - this.windowWidth = windowWidth; - this.windowHeight = windowHeight; - } -} diff --git a/samples/squares/.classpath b/samples/squares/.classpath deleted file mode 100644 index d0b04da9..00000000 --- a/samples/squares/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/samples/squares/.project b/samples/squares/.project deleted file mode 100644 index af343471..00000000 --- a/samples/squares/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - squares - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/samples/squares/build.xml b/samples/squares/build.xml deleted file mode 100644 index df44d67b..00000000 --- a/samples/squares/build.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/samples/squares/squares.bat b/samples/squares/squares.bat deleted file mode 100644 index 9e45a96d..00000000 --- a/samples/squares/squares.bat +++ /dev/null @@ -1,6 +0,0 @@ -java ^ - -Djava.library.path=../../com.amd.aparapi.jni/dist ^ - -Dcom.amd.aparapi.executionMode=%1 ^ - -classpath ../../com.amd.aparapi/dist/aparapi.jar;squares.jar ^ - com.amd.aparapi.sample.squares.Main - diff --git a/samples/squares/squares.sh b/samples/squares/squares.sh deleted file mode 100644 index 3fe88051..00000000 --- a/samples/squares/squares.sh +++ /dev/null @@ -1,5 +0,0 @@ -java \ - -Djava.library.path=../../com.amd.aparapi.jni/dist \ - -Dcom.amd.aparapi.executionMode=%1 \ - -classpath ../../com.amd.aparapi/dist/aparapi.jar:squares.jar \ - com.amd.aparapi.sample.squares.Main diff --git a/samples/squares/src/com/amd/aparapi/sample/squares/Main.java b/samples/squares/src/com/amd/aparapi/sample/squares/Main.java deleted file mode 100644 index 32a1b70b..00000000 --- a/samples/squares/src/com/amd/aparapi/sample/squares/Main.java +++ /dev/null @@ -1,96 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ - -package com.amd.aparapi.sample.squares; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -/** - * An example Aparapi application which computes and displays squares of a set of 512 input values. - * While executing on GPU using Aparpi framework, each square value is computed in a separate kernel invocation and - * can thus maximize performance by optimally utilizing all GPU computing units - * - * @author gfrost - * - */ - -public class Main{ - - public static void main(String[] _args) { - - final int size = 512; - - /** Input float array for which square values need to be computed. */ - final float[] values = new float[size]; - - /** Initialize input array. */ - for (int i = 0; i < size; i++) { - values[i] = i; - } - - /** Output array which will be populated with square values of corresponding input array elements. */ - final float[] squares = new float[size]; - - /** Aparapi Kernel which computes squares of input array elements and populates them in corresponding elements of - * output array. - **/ - Kernel kernel = new Kernel(){ - @Override public void run() { - int gid = getGlobalId(); - squares[gid] = values[gid] * values[gid]; - } - }; - - // Execute Kernel. - - kernel.execute(Range.create(512)); - - // Report target execution mode: GPU or JTP (Java Thread Pool). - System.out.println("Execution mode=" + kernel.getExecutionMode()); - - // Display computed square values. - for (int i = 0; i < size; i++) { - System.out.printf("%6.0f %8.0f\n", values[i], squares[i]); - } - - // Dispose Kernel resources. - kernel.dispose(); - } - -} diff --git a/test/codegen/.classpath b/test/codegen/.classpath deleted file mode 100644 index 935e0115..00000000 --- a/test/codegen/.classpath +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/test/codegen/.project b/test/codegen/.project deleted file mode 100644 index f89ab716..00000000 --- a/test/codegen/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - test-codegen - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/test/codegen/build.xml b/test/codegen/build.xml deleted file mode 100644 index 7af1dceb..00000000 --- a/test/codegen/build.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - OS Name: ${os.name} - OS Version: ${os.version} - OS Arch: ${os.arch} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/codegen/src/java/com/amd/aparapi/CodeGenJUnitBase.java b/test/codegen/src/java/com/amd/aparapi/CodeGenJUnitBase.java deleted file mode 100644 index 37c77c41..00000000 --- a/test/codegen/src/java/com/amd/aparapi/CodeGenJUnitBase.java +++ /dev/null @@ -1,115 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -import static org.junit.Assert.assertTrue; - -import com.amd.aparapi.internal.exception.AparapiException; -import com.amd.aparapi.internal.model.ClassModel; -import com.amd.aparapi.internal.model.Entrypoint; -import com.amd.aparapi.internal.writer.KernelWriter; - -public class CodeGenJUnitBase{ - - protected void test(Class _class, Class _expectedExceptionType, String[] expectedOpenCL) { - try { - // Source source = new Source(_class, new File("src/java")); - // System.out.println("opencl\n"+source.getOpenCL()); - - // String expected = source.getOpenCLString(); - - ClassModel classModel = new ClassModel(_class); - - // construct an artficial instance of our class here - // we assume the specified class will have a null constructor - Object kernelInstance = _class.getConstructor((Class[]) null).newInstance(); - - Entrypoint entrypoint = classModel.getEntrypoint("run", kernelInstance instanceof Kernel ? kernelInstance : null); - String actual = KernelWriter.writeToString(entrypoint); - - if (_expectedExceptionType == null) { - int matched = 0; - for (String expected : expectedOpenCL) { - if (Diff.same(actual, expected)) { - break; - } - matched++; - } - boolean same = (matched < expectedOpenCL.length); - - if (!same) { - System.out.println("---" + _class.getName() - + "------------------------------------------------------------------------------"); - boolean first = true; - for (String expected : expectedOpenCL) { - if (first) { - first = false; - } else { - System.out.println("}"); - } - System.out.println("Expected {\n" + expected); - } - System.out.println("}Actual\n{" + actual); - System.out - .println("}\n------------------------------------------------------------------------------------------------------"); - - } else { - System.out.println("Matched{" + actual); - System.out - .println("}\n------------------------------------------------------------------------------------------------------"); - - } - assertTrue(_class.getSimpleName(), same); - } else { - assertTrue("Expected exception " + _expectedExceptionType + " Instead we got {\n" + actual + "\n}", false); - } - - } catch (Throwable t) { - if (_expectedExceptionType == null || !t.getClass().isAssignableFrom(_expectedExceptionType)) { - t.printStackTrace(); - assertTrue("Unexpected exception " + t, false); - } - } - } - - protected void test(Class _class, String[] expectedOpenCL) { - test(_class, null, expectedOpenCL); - - } - -} diff --git a/test/codegen/src/java/com/amd/aparapi/CreateJUnitTests.java b/test/codegen/src/java/com/amd/aparapi/CreateJUnitTests.java deleted file mode 100644 index 40c00851..00000000 --- a/test/codegen/src/java/com/amd/aparapi/CreateJUnitTests.java +++ /dev/null @@ -1,127 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FilenameFilter; -import java.io.IOException; -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; - -public class CreateJUnitTests{ - public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException, IOException { - File rootDir = new File(System.getProperty("root", ".")); - - String rootPackageName = CreateJUnitTests.class.getPackage().getName(); - String testPackageName = rootPackageName + ".test"; - File sourceDir = new File(rootDir, "src/java"); - System.out.println(sourceDir.getCanonicalPath()); - File testDir = new File(sourceDir, testPackageName.replace(".", "/")); - System.out.println(testDir.getCanonicalPath()); - - List classNames = new ArrayList(); - for (File sourceFile : testDir.listFiles(new FilenameFilter(){ - - @Override public boolean accept(File dir, String name) { - return (name.endsWith(".java")); - } - })) { - String fileName = sourceFile.getName(); - String className = fileName.substring(0, fileName.length() - ".java".length()); - classNames.add(className); - } - - File genSourceDir = new File(rootDir, "src/genjava"); - File codeGenDir = new File(genSourceDir, rootPackageName.replace(".", "/") + "/test/junit/codegen/"); - codeGenDir.mkdirs(); - - for (String className : classNames) { - - Source source = new Source(Class.forName(testPackageName + "." + className), sourceDir); - - StringBuilder sb = new StringBuilder(); - sb.append("package com.amd.aparapi.test.junit.codegen;\n"); - sb.append("import org.junit.Test;\n"); - String doc = source.getDocString(); - if (doc.length() > 0) { - sb.append("/**\n"); - sb.append(doc); - sb.append("\n */\n"); - } - sb.append("public class " + className + " extends com.amd.aparapi.CodeGenJUnitBase{\n"); - sb.append(" @Test public void " + className + "(){\n"); - if (source.getOpenCLSectionCount() > 0) { - - sb.append(" String[] expectedOpenCL = new String[]{\n"); - for (List opencl : source.getOpenCL()) { - sb.append(" \"\"\n"); - for (String line : opencl) { - sb.append(" +\"" + line + "\\n\"\n"); - } - sb.append(" ,\n"); - } - sb.append(" };\n"); - } else { - sb.append(" String[] expectedOpenCL = null;\n"); - } - - String exceptions = source.getExceptionsString(); - if (exceptions.length() > 0) { - sb.append(" Class expectedException = "); - - sb.append("com.amd.aparapi.internal.exception." + exceptions + ".class"); - sb.append(";\n"); - } else { - sb.append(" Class expectedException = null;\n"); - } - sb.append(" test(" + testPackageName + "." + className + ".class, expectedException, expectedOpenCL);\n"); - sb.append(" }\n"); - sb.append("}\n"); - // System.out.println(sb.toString()); - - File generatedFile = new File(codeGenDir, className + ".java"); - PrintStream out = new PrintStream(generatedFile); - out.append(sb.toString()); - out.close(); - - } - - } -} diff --git a/test/codegen/src/java/com/amd/aparapi/Diff.java b/test/codegen/src/java/com/amd/aparapi/Diff.java deleted file mode 100644 index be197442..00000000 --- a/test/codegen/src/java/com/amd/aparapi/Diff.java +++ /dev/null @@ -1,267 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -import java.awt.Point; -import java.util.ArrayList; -import java.util.List; - -public class Diff{ - - static int[] hash(String[] lines) { - int[] val = new int[lines.length]; - for (int i = 0; i < lines.length; i++) { - val[i] = lines[i].hashCode(); - } - return (val); - } - - static void costDiag(List[][] flags, int x, int y) { - if (x == 0 || y == 0 || flags[x - 1][y - 1] == null) { - if (x < (flags.length - 2) && y < (flags[0].length - 2)) { - flags[x][y] = new ArrayList(); - flags[x][y].add(new Point(x, y)); - } - } else { - flags[x - 1][y - 1].add(new Point(x, y)); - flags[x][y] = flags[x - 1][y - 1]; - } - } - - static void cleanIslands(List[][] flags, int x, int y) { - flags[x][y] = null; - if (x > 0 && y > 0 && flags[x - 1][y - 1] != null && flags[x - 1][y - 1].size() == 1) { - flags[x - 1][y - 1] = null; - } - } - - public static class DiffResult{ - - public static enum TYPE { - SAME, - LEFT, - RIGHT - }; - - public static class Block{ - int lhsFrom; - - int rhsFrom; - - int lhsTo; - - int rhsTo; - - TYPE type; - - public Block(TYPE _type, int _lhsFrom, int _rhsFrom) { - lhsFrom = lhsTo = _lhsFrom; - rhsFrom = rhsTo = _rhsFrom; - type = _type; - } - - public void extend(int _lhsTo, int _rhsTo) { - lhsTo = _lhsTo; - rhsTo = _rhsTo; - } - - public String toString(String[] _lhs, String[] _rhs) { - StringBuilder sb = new StringBuilder(); - sb.append(type).append("\n"); - - switch (type) { - case SAME: - for (int i = lhsFrom; i <= lhsTo; i++) { - sb.append(" ==" + _lhs[i]).append("\n"); - } - break; - case LEFT: - for (int i = lhsFrom; i <= lhsTo; i++) { - sb.append(" <" + _lhs[i]).append("\n"); - } - break; - case RIGHT: - for (int i = rhsFrom; i <= rhsTo; i++) { - sb.append(" >" + _rhs[i]).append("\n"); - } - break; - } - return (sb.toString()); - } - - } - - List blocks = new ArrayList(); - - private String[] rhs; - - private String[] lhs; - - public void add(TYPE _type, int lhs, int rhs) { - if (false) { - if (blocks.size() > 0) { - Block lastBlock = blocks.get(blocks.size() - 1); - if (lastBlock.type == _type) { - lastBlock.extend(lhs, rhs); - } else { - blocks.add(new Block(_type, lhs, rhs)); - } - } else { - blocks.add(new Block(_type, lhs, rhs)); - } - } - blocks.add(new Block(_type, lhs, rhs)); - } - - DiffResult(String[] _lhs, String[] _rhs) { - lhs = _lhs; - rhs = _rhs; - } - - public String[] getLhs() { - return lhs; - } - - public String[] getRhs() { - return rhs; - } - - public String toString() { - StringBuilder sb = new StringBuilder(); - for (Block block : blocks) { - sb.append(block.toString(lhs, rhs)).append("\n"); - } - return (sb.toString()); - } - } - - @SuppressWarnings("unchecked") public static DiffResult diff(String[] lhsString, String[] rhsString) { - DiffResult diffResult = new DiffResult(lhsString, rhsString); - int[] lhsHash = hash(lhsString); - int[] rhsHash = hash(rhsString); - int lhsLength = lhsHash.length; // number of lines of first file - int rhsLength = rhsHash.length; // number of lines of second file - - // opt[i][j] = length of LCS of x[i..M] and y[j..N] - int[][] opt = new int[lhsLength + 1][rhsLength + 1]; - List[][] flags = new ArrayList[lhsLength + 1][rhsLength + 1]; - - // compute length of LCS and all subproblems via dynamic programming - for (int i = 0; i < lhsLength; i++) { - for (int j = 0; j < rhsLength; j++) { - if (lhsHash[i] == rhsHash[j]) { - // We are the same so continue the diagonal is intact - if (i == 0 || j == 0) { - opt[i][j] = 0; - } else { - opt[i][j] = opt[i - 1][j - 1] + 1; - } - costDiag(flags, i, j); - } else { - cleanIslands(flags, i, j); - if (i == 0 || j == 0) { - opt[i][j] = 0; - } else { - opt[i][j] = Math.max(opt[i - 1][j], opt[i][j - 1]); - } - } - } - } - - // recover LCS itself and print out non-matching lines to standard output - int i = 0, j = 0; - while (i < lhsLength && j < rhsLength) { - // if the diagonal is in tact walk it - if (lhsHash[i] == rhsHash[j]) { - diffResult.add(DiffResult.TYPE.SAME, i, j); - i++; - j++; - } - // otherwise walk along the xx or y axis which is the longer - // this is not always the best approach. - // we need to find the shortest path between {i,j} and the {i+ii,j+jj} which - // connects us to the next diagonal run - else if (opt[i + 1][j] >= opt[i][j + 1]) { - diffResult.add(DiffResult.TYPE.LEFT, i, j); - System.out.println("lhs:" + i + "< " + lhsString[i++]); - } else { - diffResult.add(DiffResult.TYPE.RIGHT, i, j); - System.out.println("rhs:" + j + "> " + rhsString[j++]); - } - } - - // dump out one remainder of one string if the other is exhausted - while (i < lhsLength || j < rhsLength) { - if (i == lhsLength) { - diffResult.add(DiffResult.TYPE.RIGHT, i, j); - System.out.println("lhs:" + i + "> " + rhsString[j++]); - } else if (j == rhsLength) { - diffResult.add(DiffResult.TYPE.LEFT, i, j); - System.out.println("rhs:" + j + "< " + lhsString[i++]); - } - } - return (diffResult); - } - - public static boolean same(String left, String right) { - StringBuilder leftAll = new StringBuilder(); - - for (String s : left.replace("\n", "").split(" *")) { - leftAll.append(s); - } - - StringBuilder rightAll = new StringBuilder(); - for (String s : right.replace("\n", " ").split(" *")) { - rightAll.append(s); - } - boolean same = leftAll.toString().equals(rightAll.toString()); - if (!same) { - String[] lhs = left.split("\n"); - for (int i = 0; i < lhs.length; i++) { - lhs[i] = lhs[i].trim(); - } - String[] rhs = right.split("\n"); - for (int i = 0; i < rhs.length; i++) { - rhs[i] = rhs[i].trim(); - } - diff(lhs, rhs); - } - return (same); - } - -} diff --git a/test/codegen/src/java/com/amd/aparapi/KernelHelper.java b/test/codegen/src/java/com/amd/aparapi/KernelHelper.java deleted file mode 100644 index b213e957..00000000 --- a/test/codegen/src/java/com/amd/aparapi/KernelHelper.java +++ /dev/null @@ -1,56 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -// contains some things that only tests would use -// but in the com.amd.aparapi package for convenience - -public class KernelHelper{ - // public KernelHelper(Kernel kernel) { - // this.kernel = kernel; - // this.kernelRunner = kernel.getKernelRunner(); - // } - // - // public boolean hasFP64Support() { - // return kernelRunner.hasFP64Support(); - // } - // - // Kernel kernel; - // - // KernelRunner kernelRunner; -} diff --git a/test/codegen/src/java/com/amd/aparapi/Source.java b/test/codegen/src/java/com/amd/aparapi/Source.java deleted file mode 100644 index a08c2872..00000000 --- a/test/codegen/src/java/com/amd/aparapi/Source.java +++ /dev/null @@ -1,186 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; - -public class Source{ - enum STATE { - NONE, - JAVA, - OPENCL, - DOC - }; - - static final String OpenCLStart = "/**{OpenCL{"; - - static final String OpenCLEnd = "}OpenCL}**/"; - - static final String ThrowsStart = "/**{Throws{"; - - static final String ThrowsEnd = "}Throws}**/"; - - static final String DocStart = "/**"; - - static final String DocEnd = "*/"; - - Class clazz; - - File file; - - Source.STATE state = STATE.NONE; - - List all = new ArrayList(); - - List> opencl = new ArrayList>(); - - List doc = new ArrayList(); - - List java = new ArrayList(); - - List exceptions = new ArrayList(); - - public Source(Class _clazz, File _rootDir) { - clazz = _clazz; - String srcName = clazz.getPackage().getName().replace(".", "/") + "/" + clazz.getSimpleName() + ".java"; - file = new File(_rootDir, srcName); - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); - - state = STATE.JAVA; - List openclSection = null; - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - all.add(line); - String trimmedLine = line.trim(); - switch (state) { - case JAVA: - if (trimmedLine.equals(OpenCLStart)) { - state = STATE.OPENCL; - openclSection = new ArrayList(); - opencl.add(openclSection); - - } else if (trimmedLine.startsWith(ThrowsStart) && trimmedLine.endsWith(ThrowsEnd)) { - exceptions.add(trimmedLine.substring(ThrowsStart.length(), trimmedLine.length() - ThrowsEnd.length())); - } else if (trimmedLine.equals(DocStart)) { - state = STATE.DOC; - } else { - java.add(line); - } - break; - case OPENCL: - if (trimmedLine.equals(OpenCLEnd)) { - state = STATE.JAVA; - } else { - openclSection.add(line); - } - break; - case DOC: - if (trimmedLine.equals(DocEnd)) { - state = STATE.JAVA; - } else { - doc.add(line); - } - break; - - } - } - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - private String listToString(List list) { - StringBuilder stringBuilder = new StringBuilder(); - for (String line : list) { - stringBuilder.append(line).append("\n"); - } - return (stringBuilder.toString().trim()); - } - - public String getOpenCLString(int _index) { - return (listToString(opencl.get(_index))); - } - - public List> getOpenCL() { - return (opencl); - } - - public String getJavaString() { - return (listToString(java)); - } - - public List getJava() { - return (java); - } - - public File getFile() { - return (file); - } - - public String getExceptionsString() { - return (listToString(exceptions)); - } - - public List getExceptions() { - return (exceptions); - } - - public String getDocString() { - return (listToString(doc)); - } - - public List getDoc() { - return (doc); - } - - public int getOpenCLSectionCount() { - return (opencl.size()); - } -} diff --git a/test/codegen/src/java/com/amd/aparapi/SwingDiff.java b/test/codegen/src/java/com/amd/aparapi/SwingDiff.java deleted file mode 100644 index 7a9def1a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/SwingDiff.java +++ /dev/null @@ -1,203 +0,0 @@ -/* -Copyright (c) 2010-2011, Advanced Micro Devices, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the -following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following -disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following -disclaimer in the documentation and/or other materials provided with the distribution. - -Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products -derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -If you use the software (in whole or in part), you shall adhere to all applicable U.S., European, and other export -laws, including but not limited to the U.S. Export Administration Regulations ("EAR"), (15 C.F.R. Sections 730 through -774), and E.U. Council Regulation (EC) No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of the EAR, -you hereby certify that, except pursuant to a license granted by the United States Department of Commerce Bureau of -Industry and Security or as otherwise permitted pursuant to a License Exception under the U.S. Export Administration -Regulations ("EAR"), you will not (1) export, re-export or release to a national of a country in Country Groups D:1, -E:1 or E:2 any restricted technology, software, or source code you receive hereunder, or (2) export to Country Groups -D:1, E:1 or E:2 the direct product of such technology or software, if such foreign produced direct product is subject -to national security controls as identified on the Commerce Control List (currently found in Supplement 1 to Part 774 -of EAR). For the most current Country Group listings, or for additional information about the EAR or your obligations -under those regulations, please refer to the U.S. Bureau of Industry and Security's website at http://www.bis.doc.gov/. - -*/ -package com.amd.aparapi; - -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.JFrame; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextPane; -import javax.swing.UIManager; -import javax.swing.UnsupportedLookAndFeelException; -import javax.swing.text.BadLocationException; -import javax.swing.text.DefaultStyledDocument; -import javax.swing.text.Style; -import javax.swing.text.StyleConstants; -import javax.swing.text.StyleContext; - -import com.amd.aparapi.Diff.DiffResult; - -public class SwingDiff{ - JFrame frame; - - public SwingDiff(DiffResult result) { - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - - frame = new JFrame("SwingDiff"); - - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - JPanel panel = new JPanel(){ - @Override public void paint(Graphics g) { - super.paint(g); - g.drawRect(10, 10, 100, 100); - } - }; - panel.setLayout(new BorderLayout()); - - StyleContext sc = new StyleContext(); - - // Create and add the style - final Style rootStyle = sc.addStyle("Root", null); - rootStyle.addAttribute(StyleConstants.Foreground, Color.black); - rootStyle.addAttribute(StyleConstants.FontSize, new Integer(12)); - rootStyle.addAttribute(StyleConstants.FontFamily, "serif"); - rootStyle.addAttribute(StyleConstants.Bold, new Boolean(false)); - final Style heading1Style = sc.addStyle("Heading1", rootStyle); - heading1Style.addAttribute(StyleConstants.Foreground, Color.blue); - - final Style heading2Style = sc.addStyle("Heading2", rootStyle); - heading2Style.addAttribute(StyleConstants.Foreground, Color.red); - heading2Style.addAttribute(StyleConstants.Background, Color.green); - - final DefaultStyledDocument lhsdoc = new DefaultStyledDocument(sc); - JTextPane lhs = new JTextPane(lhsdoc); - - lhsdoc.insertString(0, arrayToString(result.getLhs()), null); - - // Finally, apply the style to the heading - - lhsdoc.setParagraphAttributes(4, 1, heading2Style, false); - lhsdoc.setParagraphAttributes(20, 5, heading1Style, false); - - lhs.setPreferredSize(new Dimension(800, 800)); - final DefaultStyledDocument rhsdoc = new DefaultStyledDocument(sc); - JTextPane rhs = new JTextPane(rhsdoc); - rhsdoc.insertString(0, arrayToString(result.getRhs()), null); - - rhsdoc.setParagraphAttributes(4, 1, heading2Style, false); - rhsdoc.setParagraphAttributes(20, 5, heading1Style, false); - rhs.setPreferredSize(new Dimension(800, 800)); - panel.add(new JScrollPane(lhs), BorderLayout.WEST); - panel.add(new JScrollPane(rhs), BorderLayout.EAST); - - // frame.setBackground(background); - frame.getContentPane().add(panel); - frame.pack(); - frame.setVisible(true); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (UnsupportedLookAndFeelException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (BadLocationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - public static void main(String[] args) { - String[] lhs = getFileContents("expected.c"); - String[] rhs = getFileContents("actual.c"); - - DiffResult result = Diff.diff(lhs, rhs); - System.out.println(result); - - SwingDiff swingDiff = new SwingDiff(result); - } - - private static String arrayToString(String[] array) { - StringBuilder stringBuilder = new StringBuilder(); - for (String line : array) { - stringBuilder.append(line).append("\n"); - } - return (stringBuilder.toString().trim()); - } - - private static String[] getFileContents(String string) { - String[] content = null; - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(string))); - List lines = new ArrayList(); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - lines.add(line); - } - reader.close(); - content = lines.toArray(new String[0]); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return (content); - - } - - private static String getFileContent(String string) { - String content = null; - try { - BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(string))); - StringBuilder sb = new StringBuilder(); - for (String line = reader.readLine(); line != null; line = reader.readLine()) { - sb.append(line).append("\n"); - } - reader.close(); - content = sb.toString(); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return (content); - - } - -} diff --git a/test/codegen/src/java/com/amd/aparapi/test/Access2DIntArray.java b/test/codegen/src/java/com/amd/aparapi/test/Access2DIntArray.java deleted file mode 100644 index a69c0a0d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Access2DIntArray.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.amd.aparapi.test; - -public class Access2DIntArray{ - int[][] ints = new int[1024][]; - - public void run() { - int value = ints[0][0]; - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessBooleanArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessBooleanArray.java deleted file mode 100644 index 32ca87d6..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessBooleanArray.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessBooleanArray{ - boolean[] ba = new boolean[1024]; - - public void run() { - for (int i = 0; i < 1024; i++) { - if (i % 2 == 0) { - ba[i] = true; - } else { - ba[i] = false; - } - } - } -} -/**{OpenCL{ -typedef struct This_s{ - __global char *ba; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} - -__kernel void run( - __global char *ba, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->ba = ba; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - if ((i % 2)==0){ - this->ba[i] = 1; - } else { - this->ba[i] = 0; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessByteArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessByteArray.java deleted file mode 100644 index 890ff6a0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessByteArray.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.amd.aparapi.test; - -/** - * - * Test whether we can assign a byte array element. - * @author gfrost - * - */ -public class AccessByteArray{ - byte[] bytes = new byte[1024]; - - public void run() { - - for (int i = 0; i < 1024; i++) { - - bytes[i] = (byte) 1; - - } - - } -} -/**{OpenCL{ - typedef struct This_s{ - __global char *bytes; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global char *bytes, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->bytes = bytes; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - this->bytes[i] = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessDoubleArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessDoubleArray.java deleted file mode 100644 index c8cf5364..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessDoubleArray.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessDoubleArray{ - double[] doubles = new double[1024]; - - public void run() { - - for (int i = 0; i < 1024; i++) { - doubles[i] = 1.0; - } - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - __global double *doubles; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global double *doubles, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->doubles = doubles; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - this->doubles[i] = 1.0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessFloatArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessFloatArray.java deleted file mode 100644 index 45f2de6a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessFloatArray.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessFloatArray{ - float[] floats = new float[1024]; - - public void run() { - for (int i = 0; i < 1024; i++) { - floats[i] = 1f; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - __global float *floats; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global float *floats, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->floats = floats; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - this->floats[i] = 1.0f; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessIntArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessIntArray.java deleted file mode 100644 index fca5117c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessIntArray.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessIntArray{ - int[] ints = new int[1024]; - - public void run() { - for (int i = 0; i < 1024; i++) { - ints[i] = 1; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *ints; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *ints, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->ints = ints; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - this->ints[i] = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessLongArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessLongArray.java deleted file mode 100644 index ba4d6fd0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessLongArray.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessLongArray{ - long[] longs = new long[1024]; - - public void run() { - for (int i = 0; i < 1024; i++) { - longs[i] = 1; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - __global long *longs; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global long *longs, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->longs = longs; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - this->longs[i] = 1L; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessNested2DIntArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessNested2DIntArray.java deleted file mode 100644 index 444900d0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessNested2DIntArray.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessNested2DIntArray{ - int[] indices = new int[1024]; - - int[][] ints = new int[1024][]; - - public void run() { - int value = ints[indices[0]][0]; - } - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AccessShortArray.java b/test/codegen/src/java/com/amd/aparapi/test/AccessShortArray.java deleted file mode 100644 index 345a0d1d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AccessShortArray.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class AccessShortArray{ - short[] shorts = new short[1024]; - - public void run() { - for (int i = 0; i < 1024; i++) { - shorts[i] = 1; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - __global short *shorts; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global short *shorts, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->shorts = shorts; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - this->shorts[i] = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AndOrAndPrecedence.java b/test/codegen/src/java/com/amd/aparapi/test/AndOrAndPrecedence.java deleted file mode 100644 index 4aed5153..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AndOrAndPrecedence.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class AndOrAndPrecedence{ - public void run() { - boolean a = true; - boolean b = true; - boolean c = true; - boolean d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a && b || c && d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 && b!=0 || c!=0 && d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AndOrPrecedence.java b/test/codegen/src/java/com/amd/aparapi/test/AndOrPrecedence.java deleted file mode 100644 index f427b54f..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AndOrPrecedence.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class AndOrPrecedence{ - public void run() { - boolean a = true; - boolean b = false; - boolean c = false; - @SuppressWarnings("unused") boolean pass = false; - - if (a || b && c) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 0; - char c = 0; - char pass = 0; - if (a!=0 || b!=0 && c!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AndOrPrecedence2.java b/test/codegen/src/java/com/amd/aparapi/test/AndOrPrecedence2.java deleted file mode 100644 index 4e2878bf..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AndOrPrecedence2.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class AndOrPrecedence2{ - public void run() { - boolean a = false; - boolean b = false; - boolean d = false; - @SuppressWarnings("unused") boolean pass = false; - - if (a && !(b && d)) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 0; - char b = 0; - char d = 0; - char pass = 0; - if (a!=0 && (b==0 || d==0)){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScope.java b/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScope.java deleted file mode 100644 index 1862abd0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScope.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.amd.aparapi.test; - -public class ArbitraryScope{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - int tid = 0; - - int i = tid % width; - int j = tid / width; - - float x0 = ((i * scale) - ((scale / 2) * width)) / width; - float y0 = ((j * scale) - ((scale / 2) * width)) / width; - - float x = x0; - float y = y0; - - float x2 = x * x; - float y2 = y * y; - - { - - float scaleSquare = scale * scale; - - int count = 0; - - for (int iter = 0; iter < maxIterations; ++iter) { - if (x2 + y2 <= scaleSquare) { - y = 2 * x * y + y0; - x = x2 - y2 + x0; - - x2 = x * x; - y2 = y * y; - count++; - } else { - count--; - } - } - @SuppressWarnings("unused") int value = (256 * count) / maxIterations; - } - - @SuppressWarnings("unused") float scaleSquare = 1f; - } -} -/**{OpenCL{ -typedef struct This_s{ - int width; - float scale; - int maxIterations; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int width, - float scale, - int maxIterations, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->width = width; - this->scale = scale; - this->maxIterations = maxIterations; - this->passid = passid; - { - int tid = 0; - int i = tid % this->width; - int j = tid / this->width; - float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float x = x0; - float y = y0; - float x2 = x * x; - float y2 = y * y; - { - float scaleSquare = this->scale * this->scale; - int count = 0; - for (int iter = 0; itermaxIterations; iter++){ - if ((x2 + y2)<=scaleSquare){ - y = ((2.0f * x) * y) + y0; - x = (x2 - y2) + x0; - x2 = x * x; - y2 = y * y; - count++; - } else { - count--; - } - } - int value = (256 * count) / this->maxIterations; - } - float scaleSquare = 1.0f; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScope2.java b/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScope2.java deleted file mode 100644 index 6ada6924..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScope2.java +++ /dev/null @@ -1,104 +0,0 @@ -package com.amd.aparapi.test; - -public class ArbitraryScope2{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - int tid = 0; - - int i = tid % width; - int j = tid / width; - - float x0 = ((i * scale) - ((scale / 2) * width)) / width; - float y0 = ((j * scale) - ((scale / 2) * width)) / width; - - float x = x0; - float y = y0; - - float x2 = x * x; - float y2 = y * y; - - { - int count = 0; - count++; - } - - float scaleSquare = scale * scale; - - int count = 0; - - for (int iter = 0; iter < maxIterations; ++iter) { - if (x2 + y2 <= scaleSquare) { - y = 2 * x * y + y0; - x = x2 - y2 + x0; - - x2 = x * x; - y2 = y * y; - count++; - } else { - count--; - } - } - @SuppressWarnings("unused") int value = (256 * count) / maxIterations; - - } -} -/**{OpenCL{ -typedef struct This_s{ - int width; - float scale; - int maxIterations; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} - -__kernel void run( - int width, - float scale, - int maxIterations, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->width = width; - this->scale = scale; - this->maxIterations = maxIterations; - this->passid = passid; - { - int tid = 0; - int i = tid % this->width; - int j = tid / this->width; - float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float x = x0; - float y = y0; - float x2 = x * x; - float y2 = y * y; - { - int count = 0; - count++; - } - float scaleSquare = this->scale * this->scale; - int count = 0; - for (int iter = 0; itermaxIterations; iter++){ - if ((x2 + y2)<=scaleSquare){ - y = ((2.0f * x) * y) + y0; - x = (x2 - y2) + x0; - x2 = x * x; - y2 = y * y; - count++; - } else { - count--; - } - } - int value = (256 * count) / this->maxIterations; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScopeSimple.java b/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScopeSimple.java deleted file mode 100644 index 82b447ae..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ArbitraryScopeSimple.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.amd.aparapi.test; - -public class ArbitraryScopeSimple{ - - public void run() { - int value = 10; - { - int count = 10; - float f = 10f; - value = (int) (count * f); - } - @SuppressWarnings("unused") int result = 0; - int count = 0; - result = value + count; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int value = 10; - { - int count = 10; - float f = 10.0f; - value = (int)((float)count * f); - } - int result = 0; - int count = 0; - result = value + count; - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ArrayTortureIssue35.java b/test/codegen/src/java/com/amd/aparapi/test/ArrayTortureIssue35.java deleted file mode 100644 index a4841457..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ArrayTortureIssue35.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class ArrayTortureIssue35{ - int[] a = new int[1]; - - int[] b = new int[1]; - - public void run() { - a[b[0]++] = 1; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *a; - __global int *b; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *a, - __global int *b, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->a = a; - this->b = b; - this->passid = passid; - { - this->a[this->b[0]++] = 1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Assign2DIntArray.java b/test/codegen/src/java/com/amd/aparapi/test/Assign2DIntArray.java deleted file mode 100644 index cae8c268..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Assign2DIntArray.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.amd.aparapi.test; - -public class Assign2DIntArray{ - int[][] ints = new int[1024][]; - - public void run() { - ints[0][0] = 1; - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AssignAndPassAsParameter.java b/test/codegen/src/java/com/amd/aparapi/test/AssignAndPassAsParameter.java deleted file mode 100644 index f30d4ed0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AssignAndPassAsParameter.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amd.aparapi.test; - -public class AssignAndPassAsParameter{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - int actuallyDoIt(int a) { - return 1; - } - - int y = 2; - - public void run() { - actuallyDoIt(results[y] = actuallyDoIt(y)); - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *results; - int y; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_AssignAndPassAsParameter__actuallyDoIt(This *this, int a){ - return(1); -} -__kernel void run( - __global int *results, - int y, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->results = results; - this->y = y; - this->passid = passid; - { - com_amd_aparapi_test_AssignAndPassAsParameter__actuallyDoIt(this, this->results[this->y] = com_amd_aparapi_test_AssignAndPassAsParameter__actuallyDoIt(this, this->y)); - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AssignAndPassAsParameterSimple.java b/test/codegen/src/java/com/amd/aparapi/test/AssignAndPassAsParameterSimple.java deleted file mode 100644 index 90a22bea..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AssignAndPassAsParameterSimple.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.amd.aparapi.test; - -public class AssignAndPassAsParameterSimple{ - - void actuallyDoIt(int a) { - - } - - public void run() { - @SuppressWarnings("unused") int z; - actuallyDoIt(z = 1); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/AssignField.java b/test/codegen/src/java/com/amd/aparapi/test/AssignField.java deleted file mode 100644 index ccc177e1..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/AssignField.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.amd.aparapi.test; - -public class AssignField{ - int field = 1024; - - public void run() { - field = 100; - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Atomic32Pragma.java b/test/codegen/src/java/com/amd/aparapi/test/Atomic32Pragma.java deleted file mode 100644 index 5c9a0068..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Atomic32Pragma.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class Atomic32Pragma extends Kernel{ - - final int[] values = new int[10]; - - @Override public void run() { - atomicAdd(values, 1, 1); - } -} - -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable -#pragma OPENCL EXTENSION cl_khr_global_int32_extended_atomics : enable -#pragma OPENCL EXTENSION cl_khr_local_int32_base_atomics : enable -#pragma OPENCL EXTENSION cl_khr_local_int32_extended_atomics : enable -int atomicAdd(__global int *_arr, int _index, int _delta){ - return atomic_add(&_arr[_index], _delta); -} -typedef struct This_s{ - __global int *values; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *values, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->passid = passid; - { - atomicAdd(this->values, 1, 1); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/BooleanToggle.java b/test/codegen/src/java/com/amd/aparapi/test/BooleanToggle.java deleted file mode 100644 index 2ed1ede4..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/BooleanToggle.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amd.aparapi.test; - -public class BooleanToggle{ - public void run() { - boolean pass = false; - - pass = !pass; - - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - pass = (pass==0)?1:0; - return; - } -} -}OpenCL}**/ -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - pass = (pass!=0)?0:1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Break.java b/test/codegen/src/java/com/amd/aparapi/test/Break.java deleted file mode 100644 index 3f912c3d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Break.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.amd.aparapi.test; - -public class Break{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i < 10; i++) { - if (i == 5) { - break; - } - pass = true; - } - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ByteParams.java b/test/codegen/src/java/com/amd/aparapi/test/ByteParams.java deleted file mode 100644 index 507a6905..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ByteParams.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -public class ByteParams{ - - // input for addEmUp2 - byte[] test = new byte[4]; - - byte addEmUp2(byte x, byte y) { - return (byte) ((byte) x + (byte) y); - } - - public void run() { - - @SuppressWarnings("unused") byte bb = 0; - byte cc = 7; - - addEmUp2((bb = cc), cc); - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -char com_amd_aparapi_test_ByteParams__addEmUp2(This *this, char x, char y){ - return((char )(x + y)); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char bb = 0; - char cc = 7; - com_amd_aparapi_test_ByteParams__addEmUp2(this, bb = cc, cc); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ByteParamsSimple.java b/test/codegen/src/java/com/amd/aparapi/test/ByteParamsSimple.java deleted file mode 100644 index 2f8f9ddc..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ByteParamsSimple.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class ByteParamsSimple{ - - void addEmUp2(byte x, byte y) { - - } - - public void run() { - - byte bb = 0; - byte cc = 7; - - addEmUp2(bb, cc); - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_ByteParamsSimple__addEmUp2(This *this, char x, char y){ - return; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char bb = 0; - char cc = 7; - com_amd_aparapi_test_ByteParamsSimple__addEmUp2(this, bb, cc); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallGetPassId.java b/test/codegen/src/java/com/amd/aparapi/test/CallGetPassId.java deleted file mode 100644 index 01e544cd..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallGetPassId.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class CallGetPassId extends Kernel{ - public void run() { - int thePassId = getPassId(); - } - -} -/**{OpenCL{ - -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int thePassId = get_pass_id(this); - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallObject.java b/test/codegen/src/java/com/amd/aparapi/test/CallObject.java deleted file mode 100644 index dc7d9dc0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallObject.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class CallObject extends Kernel{ - static class Dummy{ - public int foo() { - return 42; - } - }; - - Dummy dummy = new Dummy(); - - public void run() { - out[0] = dummy.foo(); - } - - int out[] = new int[2]; -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallObjectStatic.java b/test/codegen/src/java/com/amd/aparapi/test/CallObjectStatic.java deleted file mode 100644 index 23c66c2d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallObjectStatic.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class CallObjectStatic extends Kernel{ - static class Dummy{ - static public int foo() { - return 42; - } - }; - - public void run() { - out[0] = Dummy.foo(); - } - - int out[] = new int[2]; -} - -/**{OpenCL{ -typedef struct This_s{ -__global int *out; -int passid; -}This; -int get_pass_id(This *this){ -return this->passid; -} -int com_amd_aparapi_test_CallObjectStatic$Dummy__foo(){ - return(42); -} -__kernel void run( -__global int *out, -int passid -){ -This thisStruct; -This* this=&thisStruct; -this->out = out; -this->passid = passid; -{ -this->out[0] = com_amd_aparapi_test_CallObjectStatic$Dummy__foo(); -return; -} -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallRunSuper.java b/test/codegen/src/java/com/amd/aparapi/test/CallRunSuper.java deleted file mode 100644 index fca5c0c0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallRunSuper.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -class CallRunSuperBase extends Kernel{ - @Override public void run() { - out[0] = 2; - } - - int out[] = new int[2]; -} - -public class CallRunSuper extends CallRunSuperBase{ - public void run() { - super.run(); - out[1] = 3; - } - -} -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_CallRunSuperBase__run(This *this){ - this->out[0] = 2; - return; -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - com_amd_aparapi_test_CallRunSuperBase__run(this); - this->out[1] = 3; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallStaticInAnotherClass.java b/test/codegen/src/java/com/amd/aparapi/test/CallStaticInAnotherClass.java deleted file mode 100644 index d3e722e4..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallStaticInAnotherClass.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -class AnotherClass{ - static public int foo() { - return 42; - } -}; - -public class CallStaticInAnotherClass extends Kernel{ - - public int doodoo() { - return AnotherClass.foo(); - } - - public void run() { - out[0] = AnotherClass.foo() + doodoo(); - } - - int out[] = new int[2]; -} - -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_AnotherClass__foo(){ - return(42); -} -int com_amd_aparapi_test_CallStaticInAnotherClass__doodoo(This *this){ - return(com_amd_aparapi_test_AnotherClass__foo()); -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_AnotherClass__foo() + com_amd_aparapi_test_CallStaticInAnotherClass__doodoo(this); - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallSuper.java b/test/codegen/src/java/com/amd/aparapi/test/CallSuper.java deleted file mode 100644 index df91c998..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallSuper.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -abstract class CallSuperBase extends Kernel{ - int foo(int n) { - return n * 2; - } -} - -public class CallSuper extends CallSuperBase{ - public void run() { - out[0] = foo(2); - } - - int foo(int n) { - return 1 + super.foo(n); - } - - int out[] = new int[1]; -} -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_CallSuperBase__foo(This *this, int n){ - return((n * 2)); -} -int com_amd_aparapi_test_CallSuper__foo(This *this, int n){ - return((1 + com_amd_aparapi_test_CallSuperBase__foo(this, n))); -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_CallSuper__foo(this, 2); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CallTwice.java b/test/codegen/src/java/com/amd/aparapi/test/CallTwice.java deleted file mode 100644 index b25adc65..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CallTwice.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class CallTwice extends Kernel{ - - public int getOne() { - return (1); - } - - @Override public void run() { - out[0] = getOne() + getOne(); - } - - int out[] = new int[1]; -} - -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_CallTwice__getOne(This *this){ - return(1); -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_CallTwice__getOne(this) + com_amd_aparapi_test_CallTwice__getOne(this); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CharArrayField.java b/test/codegen/src/java/com/amd/aparapi/test/CharArrayField.java deleted file mode 100644 index 55ac9c07..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CharArrayField.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.amd.aparapi.test; - -public class CharArrayField{ - public void run() { - out[0] = 0; - } - - char out[] = new char[1]; -} - -/**{OpenCL{ - typedef struct This_s{ - __global unsigned short *out; - int passid; - }This; - int get_pass_id(This *this){ - return this->passid; - } - __kernel void run( - __global unsigned short *out, - int passid - ){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = 0; - return; - } - } -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CharAsParameter.java b/test/codegen/src/java/com/amd/aparapi/test/CharAsParameter.java deleted file mode 100644 index 48e47846..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CharAsParameter.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class CharAsParameter{ - - public char doIt(char x) { - return x; - } - - public void run() { - byte b = 0x1; - - doIt('A'); - - doIt((char) b); - } -} - -/**{OpenCL{ - typedef struct This_s{ - int passid; - }This; - int get_pass_id(This *this){ - return this->passid; - } - unsigned short com_amd_aparapi_test_CharAsParameter__doIt(This *this, unsigned short x){ - return(x); - } - __kernel void run( - int passid - ){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char b = 1; - com_amd_aparapi_test_CharAsParameter__doIt(this, 65); - com_amd_aparapi_test_CharAsParameter__doIt(this, (unsigned short )b); - return; - } - } -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/CharType.java b/test/codegen/src/java/com/amd/aparapi/test/CharType.java deleted file mode 100644 index 126de8d1..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CharType.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class CharType extends Kernel{ - @Override public void run() { - final char c = Character.MAX_VALUE; - this.out[0] = c; - } - - int out[] = new int[1]; -} - -/**{OpenCL{ - typedef struct This_s{ - __global int *out; - int passid; - }This; - int get_pass_id(This *this){ - return this->passid; - } - __kernel void run( - __global int *out, - int passid - ){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - unsigned short c = 65535; - this->out[0] = 65535; - return; - } - } -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java b/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java deleted file mode 100644 index b04651b2..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticFieldAccess.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -public class ClassHasStaticFieldAccess{ - int[] ints = new int[1024]; - - static int foo = 6; - - public void run() { - for (int i = 0; i < 1024; i++) { - if (i % 2 == 0) { - ints[i] = foo; - } - } - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *ints; - int foo; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - __global int *ints, - int foo, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->ints = ints; - this->foo = foo; - this->passid = passid; - { - for (int i = 0; i<1024; i++){ - if ((i % 2)==0){ - this->ints[i] = foo; - } - } - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticMethod.java b/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticMethod.java deleted file mode 100644 index 3398d3fe..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticMethod.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.amd.aparapi.test; - -public class ClassHasStaticMethod{ - int[] ints = new int[1024]; - - static int getIntAndReturnIt(int a) { - return (int) (((int) 1) - a); - } - - public void run() { - int foo = 1; - for (int i = 0; i < 1024; i++) { - if (i % 2 == 0) { - ints[i] = foo; - } else { - ints[i] = getIntAndReturnIt(foo); - ; - } - } - } -} -/**{OpenCL{ -typedef struct This_s{ -__global int *ints; -int passid; -}This; -int get_pass_id(This *this){ -return this->passid; -} -int com_amd_aparapi_test_ClassHasStaticMethod__getIntAndReturnIt(int a){ -return((1 - a)); -} -__kernel void run( -__global int *ints, -int passid -){ -This thisStruct; -This* this=&thisStruct; -this->ints = ints; -this->passid = passid; -{ -int foo = 1; -for (int i = 0; i<1024; i++){ -if ((i % 2)==0){ -this->ints[i] = foo; -} else { -this->ints[i] = com_amd_aparapi_test_ClassHasStaticMethod__getIntAndReturnIt(foo); -} -} -return; -} -} -}OpenCL}**/ - diff --git a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticMethodSimple.java b/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticMethodSimple.java deleted file mode 100644 index e1037492..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ClassHasStaticMethodSimple.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class ClassHasStaticMethodSimple{ - - static void staticMethod() { - - } - - public void run() { - staticMethod(); - - } -} - -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -void com_amd_aparapi_test_ClassHasStaticMethodSimple__staticMethod(){ - return; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - com_amd_aparapi_test_ClassHasStaticMethodSimple__staticMethod(); - return; - } -} -}OpenCL}**/ - diff --git a/test/codegen/src/java/com/amd/aparapi/test/CompositeArbitraryScope.java b/test/codegen/src/java/com/amd/aparapi/test/CompositeArbitraryScope.java deleted file mode 100644 index 664db5b5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/CompositeArbitraryScope.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.amd.aparapi.test; - -// this example gave the following error: -/// com.amd.aparapi.classtools.writer.CodeGenException: composite COMPOSITE_ARBITRARY_SCOPE - -import com.amd.aparapi.Kernel; - -public class CompositeArbitraryScope extends Kernel{ - - void t5() { - int gid = getGlobalId(); - int numRemaining = 1; - int thisCount = 0; - while (numRemaining > 0 && gid > 0) { - numRemaining += 1; - thisCount = min(numRemaining, gid); - numRemaining -= thisCount; - numRemaining += 1; - } - gid -= thisCount; - } - - void t4() { - int gid = getGlobalId(); - int numRemaining = 1; - while (numRemaining > 0 && gid > 0) { - numRemaining += 1; - int thisCount = min(numRemaining, gid); - numRemaining -= thisCount; - numRemaining += 1; - gid--; - } - } - - void t3() { - int gid = getGlobalId(); - int numRemaining = 1; - while (numRemaining > 0) { - numRemaining += 1; - int thisCount = min(numRemaining, gid); - numRemaining -= thisCount; - numRemaining += 1; - } - } - - void t2() { - int gid = getGlobalId(); - int numRemaining = 1; - while (numRemaining > 0) { - { - int thisCount = min(numRemaining, gid); - numRemaining -= thisCount; - } - numRemaining += 0; - } - } - - void t1() { - int gid = getGlobalId(); - int numRemaining = 1; - while (numRemaining > 0) { - numRemaining += 1; - int thisCount = min(numRemaining, gid); - numRemaining -= thisCount; - } - } - - @Override public void run() { - int gid = getGlobalId(); - int numRemaining = 1; - - t1(); - t2(); - t3(); - t4(); - t5(); - - while (numRemaining > 0) { - numRemaining += 1; - { - int thisCount = min(numRemaining, gid); - numRemaining -= thisCount; - } - } - } -} - -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_CompositeArbitraryScope__t5(This *this){ - int gid = get_global_id(0); - int numRemaining = 1; - int thisCount = 0; - for (; numRemaining>0 && gid>0; numRemaining++){ - numRemaining++; - thisCount = min(numRemaining, gid); - numRemaining = numRemaining - thisCount; - } - gid = gid - thisCount; - return; -} -void com_amd_aparapi_test_CompositeArbitraryScope__t4(This *this){ - int gid = get_global_id(0); - int numRemaining = 1; - while (numRemaining>0 && gid>0){ - numRemaining++; - { - int thisCount = min(numRemaining, gid); - numRemaining = numRemaining - thisCount; - numRemaining++; - gid--; - } - } - return; -} -void com_amd_aparapi_test_CompositeArbitraryScope__t3(This *this){ - int gid = get_global_id(0); - int numRemaining = 1; - while (numRemaining>0){ - numRemaining++; - { - int thisCount = min(numRemaining, gid); - numRemaining = numRemaining - thisCount; - numRemaining++; - } - } - return; -} -void com_amd_aparapi_test_CompositeArbitraryScope__t2(This *this){ - int gid = get_global_id(0); - int numRemaining = 1; - for (; numRemaining>0; numRemaining){ - { - int thisCount = min(numRemaining, gid); - numRemaining = numRemaining - thisCount; - } - } - return; -} -void com_amd_aparapi_test_CompositeArbitraryScope__t1(This *this){ - int gid = get_global_id(0); - int numRemaining = 1; - while (numRemaining>0){ - numRemaining++; - { - int thisCount = min(numRemaining, gid); - numRemaining = numRemaining - thisCount; - } - } - return; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int gid = get_global_id(0); - int numRemaining = 1; - com_amd_aparapi_test_CompositeArbitraryScope__t1(this); - com_amd_aparapi_test_CompositeArbitraryScope__t2(this); - com_amd_aparapi_test_CompositeArbitraryScope__t3(this); - com_amd_aparapi_test_CompositeArbitraryScope__t4(this); - com_amd_aparapi_test_CompositeArbitraryScope__t5(this); - while (numRemaining>0){ - numRemaining++; - { - int thisCount = min(numRemaining, gid); - numRemaining = numRemaining - thisCount; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ConstantAssignInExpression.java b/test/codegen/src/java/com/amd/aparapi/test/ConstantAssignInExpression.java deleted file mode 100644 index d3cfeccc..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ConstantAssignInExpression.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amd.aparapi.test; - -public class ConstantAssignInExpression{ - - void func(int _arg) { - // nada - } - - public void run() { - @SuppressWarnings("unused") int result = 1; - func(result = 0); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_ConstantAssignInExpression__func(This *this, int _arg){ - return; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int result = 1; - com_amd_aparapi_test_ConstantAssignInExpression__func(this, result=0); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Continue.java b/test/codegen/src/java/com/amd/aparapi/test/Continue.java deleted file mode 100644 index 13728385..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Continue.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.amd.aparapi.test; - -public class Continue{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i < 10; i++) { - if (i == 5) { - continue; - } - pass = true; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i<10; i++){ - if (i==5){ - } else { - pass = 1; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ContinueTorture.java b/test/codegen/src/java/com/amd/aparapi/test/ContinueTorture.java deleted file mode 100644 index 9bbb96b5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ContinueTorture.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class ContinueTorture{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - int actuallyDoIt(int a) { - return 1; - } - - int actuallyDoIt2(int a) { - return -1; - } - - int myId = 34; - - public void run() { - int idx = myId; - while (--idx > 0) { - - if (myId == 0) { - continue; - } - if (myId % 2 == 0) { - results[myId] = actuallyDoIt(idx); - continue; - } else { - results[myId] = actuallyDoIt2(idx); - continue; - } - } - } -} -//**{Throws{ClassParseException}Throws}**/ \ No newline at end of file diff --git a/test/codegen/src/java/com/amd/aparapi/test/DirectRecursion.java b/test/codegen/src/java/com/amd/aparapi/test/DirectRecursion.java deleted file mode 100644 index efefdebf..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/DirectRecursion.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class DirectRecursion extends Kernel{ - - public void run() { - intout[0] = fact(10); - @SuppressWarnings("unused") boolean pass = false; - } - - int fact(int n) { - return (n <= 1 ? n : n * fact(n - 1)); - } - - int intout[] = new int[1]; - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/DoWhile.java b/test/codegen/src/java/com/amd/aparapi/test/DoWhile.java deleted file mode 100644 index f6ea83a2..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/DoWhile.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class DoWhile{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - do { - pass = true; - i++; - } while (i < 10); - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - do{ - pass = 1; - i++; - }while (i<10); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Drem.java b/test/codegen/src/java/com/amd/aparapi/test/Drem.java deleted file mode 100644 index f7a0fe50..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Drem.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -public class Drem{ - public void run() { - out[0] = m % n; - } - - double out[] = new double[10]; - - double m; - - double n; -} - -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - __global double *out; - double m; - double n; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - __global double *out, - double m, - double n, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->m = m; - this->n = n; - this->passid = passid; - { - this->out[0] = this->m % this->n; - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/EarlyReturn.java b/test/codegen/src/java/com/amd/aparapi/test/EarlyReturn.java deleted file mode 100644 index 1da2075b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/EarlyReturn.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class EarlyReturn{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if ((i % 2) == 0) { - return; - } - i++; - - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i=0; - if ((i%2)==0){ - return; - } - i++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/EmptyWhileWithInc.java b/test/codegen/src/java/com/amd/aparapi/test/EmptyWhileWithInc.java deleted file mode 100644 index 71bc9343..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/EmptyWhileWithInc.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.amd.aparapi.test; - -public class EmptyWhileWithInc{ - public void run() { - int x = 0; - while (x++ < 10) { - } - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - for (int x = 0; x++<10;){} - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/EntrypointRecursion.java b/test/codegen/src/java/com/amd/aparapi/test/EntrypointRecursion.java deleted file mode 100644 index 76ee6423..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/EntrypointRecursion.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class EntrypointRecursion extends Kernel{ - - int[] values = new int[128]; - - public void run() { - int id = getGlobalId(); - - values[id]++; - - if (values[id] < 20) { - run(); - } - } - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Ex.java b/test/codegen/src/java/com/amd/aparapi/test/Ex.java deleted file mode 100644 index 80daaec7..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Ex.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class Ex{ - public void run() { - int total = 0; - for (int i = 0; i < 100; i++) { - if (i % 10 == 0 && i % 4 == 0) { - total++; - } - } - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int total = 0; - for (int i = 0; i<100; i++){ - if ((i % 10)==0 && (i % 4)==0){ - total++; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/FirstAssignInExpression.java b/test/codegen/src/java/com/amd/aparapi/test/FirstAssignInExpression.java deleted file mode 100644 index 09a888c5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/FirstAssignInExpression.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class FirstAssignInExpression{ - - void func(int _arg) { - // nada - } - - int y = 2; - - public void run() { - int value = 1; - @SuppressWarnings("unused") int result; - func(result = value); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void func(This *this, int _arg){ - return; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int result; - func(this, result = 0); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/FirstAssignInExpression2.java b/test/codegen/src/java/com/amd/aparapi/test/FirstAssignInExpression2.java deleted file mode 100644 index f37a8799..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/FirstAssignInExpression2.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.amd.aparapi.test; - -public class FirstAssignInExpression2{ - - public void run() { - int value = 1; - int assignMe; - int result = 0; - if (value == value) { - result = assignMe = value; - } else { - assignMe = 1; - result = 2; - } - result++; - assignMe++; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int value = 1; - int result=0; - int assignMe=0; - if (true){ - result = assignMe = value; - }else{ - assignMe =1; - result=2; - } - result++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/FloatParams.java b/test/codegen/src/java/com/amd/aparapi/test/FloatParams.java deleted file mode 100644 index f838f3dd..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/FloatParams.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class FloatParams{ - - int addEmUp(float y, float z) { - return ((int) y + (int) z); - } - - public void run() { - - int y = 2; - - float x = 0f; - - addEmUp((x = (float) y), x); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_FloatParams__addEmUp(This *this, float y, float z){ - return(((int)y + (int)z)); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int y = 2; - float x = 0.0f; - com_amd_aparapi_test_FloatParams__addEmUp(this, x=(float)y, x); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/FloatParamsSimple.java b/test/codegen/src/java/com/amd/aparapi/test/FloatParamsSimple.java deleted file mode 100644 index 1b580585..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/FloatParamsSimple.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class FloatParamsSimple{ - - void floatParams(float y) { - - } - - public void run() { - - floatParams(0f); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_FloatParamsSimple__floatParams(This *this, float y){ - return; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - com_amd_aparapi_test_FloatParamsSimple__floatParams(this, 0.0f); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/For.java b/test/codegen/src/java/com/amd/aparapi/test/For.java deleted file mode 100644 index 4a79388a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/For.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.amd.aparapi.test; - -public class For{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i < 10; i++) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i<10; i++){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForAnd.java b/test/codegen/src/java/com/amd/aparapi/test/ForAnd.java deleted file mode 100644 index 221e4e59..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForAnd.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class ForAnd{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i > 2 && i < 10; i++) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i>2 && i<10; i++){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForAndMandel.java b/test/codegen/src/java/com/amd/aparapi/test/ForAndMandel.java deleted file mode 100644 index 95220660..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForAndMandel.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.amd.aparapi.test; - -public class ForAndMandel{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - int tid = 0; - - int i = tid % width; - int j = tid / width; - - float x0 = ((i * scale) - ((scale / 2) * width)) / width; - float y0 = ((j * scale) - ((scale / 2) * width)) / width; - - float x = x0; - float y = y0; - - float x2 = x * x; - float y2 = y * y; - - float scaleSquare = scale * scale; - - int count = 0; - - for (int iter = 0; x2 + y2 <= scaleSquare && (iter < maxIterations); ++iter) { - - y = 2 * x * y + y0; - x = x2 - y2 + x0; - - x2 = x * x; - y2 = y * y; - count++; - } - @SuppressWarnings("unused") int value = (256 * count) / maxIterations; - } -} -/**{OpenCL{ -typedef struct This_s{ - int width; - float scale; - int maxIterations; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int width, - float scale, - int maxIterations, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->width = width; - this->scale = scale; - this->maxIterations = maxIterations; - this->passid = passid; - { - int tid = 0; - int i = tid % this->width; - int j = tid / this->width; - float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float x = x0; - float y = y0; - float x2 = x * x; - float y2 = y * y; - float scaleSquare = this->scale * this->scale; - int count = 0; - for (int iter = 0; (x2 + y2)<=scaleSquare && itermaxIterations; iter++){ - y = ((2.0f * x) * y) + y0; - x = (x2 - y2) + x0; - x2 = x * x; - y2 = y * y; - count++; - } - int value = (256 * count) / this->maxIterations; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForAndMandelNoInitialize.java b/test/codegen/src/java/com/amd/aparapi/test/ForAndMandelNoInitialize.java deleted file mode 100644 index eed60ec2..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForAndMandelNoInitialize.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.amd.aparapi.test; - -public class ForAndMandelNoInitialize{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - int tid = 0; - - int i = tid % width; - int j = tid / width; - - float x0 = ((i * scale) - ((scale / 2) * width)) / width; - float y0 = ((j * scale) - ((scale / 2) * width)) / width; - - float x = x0; - float y = y0; - - float x2 = x * x; - float y2 = y * y; - - float scaleSquare = scale * scale; - - int count = 0; - int iter = 0; - for (; (x2 + y2 <= scaleSquare) && (iter < maxIterations); ++iter) { - - y = 2 * x * y + y0; - x = x2 - y2 + x0; - - x2 = x * x; - y2 = y * y; - count++; - } - @SuppressWarnings("unused") int value = (256 * count) / maxIterations; - } -} -/**{OpenCL{ -typedef struct This_s{ - int width; - float scale; - int maxIterations; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int width, - float scale, - int maxIterations, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->width = width; - this->scale = scale; - this->maxIterations = maxIterations; - this->passid = passid; - { - int tid = 0; - int i = tid % this->width; - int j = tid / this->width; - float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float x = x0; - float y = y0; - float x2 = x * x; - float y2 = y * y; - float scaleSquare = this->scale * this->scale; - int count = 0; - int iter = 0; - for (; (x2 + y2)<=scaleSquare && itermaxIterations; iter++){ - y = ((2.0f * x) * y) + y0; - x = (x2 - y2) + x0; - x2 = x * x; - y2 = y * y; - count++; - } - int value = (256 * count) / this->maxIterations; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForAsFirst.java b/test/codegen/src/java/com/amd/aparapi/test/ForAsFirst.java deleted file mode 100644 index 21ca4db4..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForAsFirst.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.amd.aparapi.test; - -public class ForAsFirst{ - - public void run() { - - for (int i = 0; i < 1; i++) { - - } - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - for (int i = 0; i<1; i++){ - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForBooleanToggle.java b/test/codegen/src/java/com/amd/aparapi/test/ForBooleanToggle.java deleted file mode 100644 index 76636e4a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForBooleanToggle.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.amd.aparapi.test; - -public class ForBooleanToggle{ - public void run() { - boolean pass = false; - for (int i = 0; i > 2 && i < 10; i++) { - pass = !pass; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i>2 && i<10; i++){ - pass = (pass==0)?1:0; - } - return; - } -} -}OpenCL}**/ - -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i>2 && i<10; i++){ - pass = (pass!=0)?0:1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForBreak.java b/test/codegen/src/java/com/amd/aparapi/test/ForBreak.java deleted file mode 100644 index d70d519e..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForBreak.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.amd.aparapi.test; - -public class ForBreak{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i > 2 && i < 10; i++) { - pass = false; - if (i == 5 || i == 6) { - if (i == 5) { - pass = true; - break; - } - } - } - - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForEach.java b/test/codegen/src/java/com/amd/aparapi/test/ForEach.java deleted file mode 100644 index 4ab0eb0d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForEach.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.amd.aparapi.test; - -public class ForEach{ - - public void run() { - int max = Integer.MIN_VALUE; - for (int i : in) { - if (i > max) - max = i; - } - out[0] = max; - } - - int out[] = new int[10]; - - int in[] = new int[10]; -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForIf.java b/test/codegen/src/java/com/amd/aparapi/test/ForIf.java deleted file mode 100644 index 8cf2f7e3..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForIf.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amd.aparapi.test; - -public class ForIf{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i > 2; i++) { - if (i == 3) { - pass = true; - } - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i>2; i++){ - if (i==3){ - pass = 1; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ForIfMandel.java b/test/codegen/src/java/com/amd/aparapi/test/ForIfMandel.java deleted file mode 100644 index 8864ad3f..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ForIfMandel.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.amd.aparapi.test; - -public class ForIfMandel{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - int tid = 0; - - int i = tid % width; - int j = tid / width; - - float x0 = ((i * scale) - ((scale / 2) * width)) / width; - float y0 = ((j * scale) - ((scale / 2) * width)) / width; - - float x = x0; - float y = y0; - - float x2 = x * x; - float y2 = y * y; - - float scaleSquare = scale * scale; - - int count = 0; - - for (int iter = 0; iter < maxIterations; ++iter) { - if (x2 + y2 <= scaleSquare) { - y = 2 * x * y + y0; - x = x2 - y2 + x0; - - x2 = x * x; - y2 = y * y; - count++; - } else { - count--; - } - } - @SuppressWarnings("unused") int value = (256 * count) / maxIterations; - } -} -/**{OpenCL{ -typedef struct This_s{ - int width; - float scale; - int maxIterations; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int width, - float scale, - int maxIterations, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->width = width; - this->scale = scale; - this->maxIterations = maxIterations; - this->passid = passid; - { - int tid = 0; - int i = tid % this->width; - int j = tid / this->width; - float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float x = x0; - float y = y0; - float x2 = x * x; - float y2 = y * y; - float scaleSquare = this->scale * this->scale; - int count = 0; - for (int iter = 0; itermaxIterations; iter++){ - if ((x2 + y2)<=scaleSquare){ - y = ((2.0f * x) * y) + y0; - x = (x2 - y2) + x0; - x2 = x * x; - y2 = y * y; - count++; - } else { - count--; - } - } - int value = (256 * count) / this->maxIterations; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Frem.java b/test/codegen/src/java/com/amd/aparapi/test/Frem.java deleted file mode 100644 index 305f5e5c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Frem.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class Frem{ - public void run() { - out[0] = m % n; - } - - float out[] = new float[10]; - - float m; - - float n; -} - -/**{OpenCL{ -typedef struct This_s{ - __global float *out; - float m; - float n; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - __global float *out, - float m, - float n, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->m = m; - this->n = n; - this->passid = passid; - { - this->out[0] = this->m % this->n; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IEEERemainderDouble.java b/test/codegen/src/java/com/amd/aparapi/test/IEEERemainderDouble.java deleted file mode 100644 index a88459e0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IEEERemainderDouble.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class IEEERemainderDouble extends Kernel{ - public void run() { - out[0] = IEEEremainder(m, n); - } - - double out[] = new double[10]; - - double m; - - double n; -} - -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - __global double *out; - double m; - double n; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - __global double *out, - double m, - double n, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->m = m; - this->n = n; - this->passid = passid; - { - this->out[0] = remainder(this->m, this->n); - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IEEERemainderFloat.java b/test/codegen/src/java/com/amd/aparapi/test/IEEERemainderFloat.java deleted file mode 100644 index bf3ba63b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IEEERemainderFloat.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class IEEERemainderFloat extends Kernel{ - public void run() { - out[0] = IEEEremainder(m, n); - } - - float out[] = new float[10]; - - float m; - - float n; -} - -/**{OpenCL{ -typedef struct This_s{ - __global float *out; - float m; - float n; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - __global float *out, - float m, - float n, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->m = m; - this->n = n; - this->passid = passid; - { - this->out[0] = remainder(this->m, this->n); - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If.java b/test/codegen/src/java/com/amd/aparapi/test/If.java deleted file mode 100644 index 449c767e..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class If{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 4 == 0) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ( (testValue % 4) == 0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfAnd.java deleted file mode 100644 index c891f00c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfAnd.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue >= 0 && testValue < 100) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (testValue>=0 && testValue<100){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfAndAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfAndAnd.java deleted file mode 100644 index 344c07ce..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfAndAnd.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfAndAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue >= 0 && testValue < 100 && testValue == 20) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (testValue>=0 && testValue<100 && testValue==20){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfAndAndAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfAndAndAnd.java deleted file mode 100644 index 34f8028e..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfAndAndAnd.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfAndAndAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 && testValue <= 10 && testValue >= 0 && testValue % 4 == 0) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 && testValue<=10 && testValue>=0 && (testValue % 4)==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfAndOrAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfAndOrAnd.java deleted file mode 100644 index a7044f15..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfAndOrAnd.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfAndOrAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 && testValue <= 10 || testValue >= 0 && testValue % 4 == 0) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 && testValue<=10 || testValue>=0 && (testValue % 4)==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndAndAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndAndAnd.java deleted file mode 100644 index 5bd5a8f6..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndAndAnd.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanAndAndAnd{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a && b && c && d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 && b!=0 && c!=0 && d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndAndOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndAndOr.java deleted file mode 100644 index 39e7f3c9..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndAndOr.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanAndAndOr{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a && b && c || d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 && b!=0 && c!=0 || d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndOrAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndOrAnd.java deleted file mode 100644 index f8a55a25..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndOrAnd.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanAndOrAnd{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a && b || c && d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 && b!=0 || c!=0 && d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndOrOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndOrOr.java deleted file mode 100644 index b829a188..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanAndOrOr.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanAndOrOr{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a && b && c || d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 && b!=0 && c!=0 || d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrAndAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrAndAnd.java deleted file mode 100644 index aba3cc26..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrAndAnd.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanOrAndAnd{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a || b && c && d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 || b!=0 && c!=0 && d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrAndOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrAndOr.java deleted file mode 100644 index cebff431..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrAndOr.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanOrAndOr{ - public void run() { - boolean a = true; - boolean b = true; - boolean c = true; - boolean d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a || b && c || d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 || b!=0 && c!=0 || d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrOrAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrOrAnd.java deleted file mode 100644 index b180f17a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrOrAnd.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanOrOrAnd{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a || b || c && d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 || b!=0 || c!=0 && d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrOrOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrOrOr.java deleted file mode 100644 index 8d18b789..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfBooleanOrOrOr.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class IfBooleanOrOrOr{ - public void run() { - boolean a = true, b = true, c = true, d = true; - @SuppressWarnings("unused") boolean pass = false; - - if (a || b || c || d) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if (a!=0 || b!=0 || c!=0 || d!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElse.java b/test/codegen/src/java/com/amd/aparapi/test/IfElse.java deleted file mode 100644 index 773a9d36..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElse.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElse{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 4 == 0) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ( (testValue % 4) == 0){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElseAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfElseAnd.java deleted file mode 100644 index e089c0d5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElseAnd.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElseAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue >= 0 && testValue < 100) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (testValue>=0 && testValue<100){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElseAndAndAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfElseAndAndAnd.java deleted file mode 100644 index 4eac6d87..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElseAndAndAnd.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElseAndAndAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 && testValue <= 10 && testValue >= 0 && testValue % 4 == 0) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 && testValue<=10 && testValue>=0 && (testValue % 4)==0){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElseIfElseIfElse.java b/test/codegen/src/java/com/amd/aparapi/test/IfElseIfElseIfElse.java deleted file mode 100644 index a96015da..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElseIfElseIfElse.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElseIfElseIfElse{ - /* - 1: istore_1 (0:iconst_1) - 3: istore_2 (2:iconst_1) - 5: istore_3 (4:iconst_1) - 7: istore 4 (6:iconst_0) - 10: ifeq 16 (9:iload_1) ? - 13: goto 39 | + - 17: ifeq 26 (16: iload_2) v | ? - 21: istore 4 (20: iconst_1) | | - 23: goto 39 | | + - 27: ifeq 36 (26: iload_3) | v | ? - 31: istore 4 (30: iconst_1) | | | - 33: goto 39 | | | + - 37: istore 4 (36: iconst_1) | | v | - 39: return v v v - */ - public void run() { - boolean a = true; - boolean b = true; - boolean c = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - } else if (b) { - result = true; - } else if (c) { - result = true; - } else { - result = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; - -}This; -int get_pass_id(This *this){ - return this->passid; -} - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char result = 0; - if (a!=0){ - } else { - if (b!=0){ - result = 1; - } else { - if (c!=0){ - result = 1; - } else { - result = 1; - } - } - } - return; - } -} -}OpenCL}**/ -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char result = 0; - if (a==0){ - if (b!=0){ - result = 1; - } else { - if (c!=0){ - result = 1; - } else { - result = 1; - } - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElseNot__OrOr_And_.java b/test/codegen/src/java/com/amd/aparapi/test/IfElseNot__OrOr_And_.java deleted file mode 100644 index 0289da06..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElseNot__OrOr_And_.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElseNot__OrOr_And_{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (!((testValue % 2 == 0 || testValue <= 0 || testValue >= 100) && testValue % 4 == 0)) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)!=0 && testValue>0 && testValue<100 || (testValue % 4)!=0){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElseOrOrAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfElseOrOrAnd.java deleted file mode 100644 index dbf8cbac..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElseOrOrAnd.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElseOrOrAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 || testValue <= 0 || testValue >= 100 && testValue % 4 == 0) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 || testValue<=0 || testValue>=100 && (testValue % 4)==0){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElseOrOrOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfElseOrOrOr.java deleted file mode 100644 index 558a193d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElseOrOrOr.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElseOrOrOr{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 || testValue <= 0 || testValue >= 100 || testValue == 10) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 || testValue<=0 || testValue>=100 || testValue==10){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElse_And_Or_And.java b/test/codegen/src/java/com/amd/aparapi/test/IfElse_And_Or_And.java deleted file mode 100644 index 891e1e5c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElse_And_Or_And.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElse_And_Or_And{ - public void run() { - int x = 5; - int y = 5; - - @SuppressWarnings("unused") boolean pass = false; - - if ((x >= 0 && x < 10) || (y >= 0 && y < 10)) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int x = 5; - int y = 5; - char pass = 0; - if (x>=0 && x<10 || y>=0 && y<10){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElse_OrOr_And.java b/test/codegen/src/java/com/amd/aparapi/test/IfElse_OrOr_And.java deleted file mode 100644 index 42c5f442..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElse_OrOr_And.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElse_OrOr_And{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if ((testValue % 2 == 0 || testValue <= 0 || testValue >= 100) && testValue % 4 == 0) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (((testValue % 2)==0 || testValue<=0 || testValue>=100) && (testValue % 4)==0){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfElse_Or_And_Or.java b/test/codegen/src/java/com/amd/aparapi/test/IfElse_Or_And_Or.java deleted file mode 100644 index 8a522c5b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfElse_Or_And_Or.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -public class IfElse_Or_And_Or{ - public void run() { - int x = 5; - int y = 5; - - @SuppressWarnings("unused") boolean pass = false; - - if ((x < 0 || x >= 10) && (y < 0 || y >= 10)) { - pass = true; - } else { - pass = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int x = 5; - int y = 5; - char pass = 0; - if ((x<0 || x>=10) && (y<0 || y>=10)){ - pass = 1; - } else { - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfOr.java deleted file mode 100644 index 3f26971b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfOr.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfOr{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue >= 0 || testValue < 100) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (testValue>=0 || testValue<100){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfOrAndOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfOrAndOr.java deleted file mode 100644 index 9b8408c7..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfOrAndOr.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfOrAndOr{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 || testValue <= 0 && testValue >= 100 || testValue % 4 == 0) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 || testValue<=0 && testValue>=100 || (testValue % 4)==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfOrOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfOrOr.java deleted file mode 100644 index f4f447cd..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfOrOr.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfOrOr{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue >= 0 || testValue < 100 || testValue == 20) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (testValue>=0 || testValue<100 || testValue==20){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfOrOrAnd.java b/test/codegen/src/java/com/amd/aparapi/test/IfOrOrAnd.java deleted file mode 100644 index 32ce782c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfOrOrAnd.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfOrOrAnd{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 || testValue <= 0 || testValue >= 100 && testValue % 4 == 0) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 || testValue<=0 || testValue>=100 && (testValue % 4)==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IfOrOrOr.java b/test/codegen/src/java/com/amd/aparapi/test/IfOrOrOr.java deleted file mode 100644 index 3f6f051a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IfOrOrOr.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class IfOrOrOr{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if (testValue % 2 == 0 || testValue <= 0 || testValue >= 100 || testValue == 10) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 || testValue<=0 || testValue>=100 || testValue==10){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_IfElseIfElseElse_Else.java b/test/codegen/src/java/com/amd/aparapi/test/If_IfElseIfElseElse_Else.java deleted file mode 100644 index e778c809..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_IfElseIfElseElse_Else.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.amd.aparapi.test; - -public class If_IfElseIfElseElse_Else{ - public void run() { - boolean a = true; - boolean b = true; - boolean c = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - if (b) { - result = true; - } else if (c) { - result = true; - } else { - result = true; - } - } else { - result = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char result = 0; - if (a!=0){ - if (b!=0){ - result = 1; - } else { - if (c!=0){ - result = 1; - } else { - result = 1; - } - } - } else { - result = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_IfElse_Else.java b/test/codegen/src/java/com/amd/aparapi/test/If_IfElse_Else.java deleted file mode 100644 index c3b7acd0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_IfElse_Else.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.amd.aparapi.test; - -public class If_IfElse_Else{ - public void run() { - boolean a = true; - boolean b = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - if (b) { - result = true; - } else { - result = true; - } - } else { - result = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char result = 0; - if (a!=0){ - if (b!=0){ - result = 1; - } else { - result = 1; - } - } else { - result = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_IfElse_Else_IfElse_.java b/test/codegen/src/java/com/amd/aparapi/test/If_IfElse_Else_IfElse_.java deleted file mode 100644 index 5c0ff1ad..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_IfElse_Else_IfElse_.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.amd.aparapi.test; - -public class If_IfElse_Else_IfElse_{ - /* - 1: istore_1 ( 0: iconst_1) - 3: istore_2 ( 2: iconst_1) - 5: istore_3 ( 4: iconst_1) - 7: istore 4 ( 6: iconst_1) - 10: istore 5 ( 9: iconst_0) - 13: ifeq 50 (12: iload_1) ? - 17: ifeq 36 (16: iload_2) | ? - 21: ifeq 30 (20: iload_3) | | ? - 25: istore 5 (24: iconst_1) | | | - 27: goto 50 | | | + - 31: istore 5 (30: iconst_2) | | v | - 33: goto 50 | | | + - 38: ifeq 47 (36: iload 4) | v | | ? !!!!!!! - 42: istore 5 (41: iconst_3) | | | | - 44: goto 50 | | | | + - 48: istore 5 (47: iconst_4) | | | v | - 50: return v v v v - - - - 1: istore_1 ( 0: iconst_1) - 3: istore_2 ( 2: iconst_1) - 5: istore_3 ( 4: iconst_1) - 7: istore 4 ( 6: iconst_1) - 10: istore 5 ( 9: iconst_0) - 13: ifeq 50 (12: iload_1) ? - 17: ifeq 36 (16: iload_2) | ? - 21: IFELSE | | - 33: goto 50 | | | + - 38: ifeq 47 (36: iload 4) | v | | ? !!!!!!!! - 42: istore 5 (41: iconst_3) | | | | - 44: goto 50 | | | | + - 48: istore 5 (47: iconst_4) | | | v | - 50: return v v v v - - 1: istore_1 ( 0: iconst_1) - 3: istore_2 ( 2: iconst_1) - 5: istore_3 ( 4: iconst_1) - 7: istore 4 ( 6: iconst_1) - 10: istore 5 ( 9: iconst_0) - 13: ifeq 50 (12: iload_1) ? - 17: ifeq 36 (16: iload_2) | ? <---- ignore this - 21: IFELSE | | - 33: goto 50 | | + - 38: IFELSE | v | - 50: return v v - - 1: istore_1 ( 0: iconst_1) - 3: istore_2 ( 2: iconst_1) - 5: istore_3 ( 4: iconst_1) - 7: istore 4 ( 6: iconst_1) - 10: istore 5 ( 9: iconst_0) - 13: ifeq 50 (12: iload_1) ? - 21: IFELSE | - 33: goto 50 | + - 38: IFELSE | | - 50: return v v - */ - public void run() { - boolean a = true; - boolean b = true; - boolean c = true; - boolean d = true; - @SuppressWarnings("unused") int count = 0; - if (a) { - if (b) { - if (c) { - count = 1; - } else { - count = 2; - } - } else { - if (d) { - count = 3; - } else { - count = 4; - } - } - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - int count = 0; - if (a!=0){ - if (b!=0){ - if (c!=0){ - count = 1; - } else { - count = 2; - } - } else { - if (d!=0){ - count = 3; - } else { - count = 4; - } - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_If_Else.java b/test/codegen/src/java/com/amd/aparapi/test/If_If_Else.java deleted file mode 100644 index 937fdf61..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_If_Else.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.amd.aparapi.test; - -public class If_If_Else{ - /* - 1: istore_1 (0: iconst_1) - 3: istore_2 (2: iconst_1) - 5: istore_3 (4: iconst_0) - 7: ifeq 19 (6: iload_1) ? - 11: ifeq 21 (10: iload_2) | ? - 15: istore_3 (14: iconst_1) | | - 16: goto 21 | | + - 20: istore_3 (19: iconst_0) v | | - 21: return v v - */ - public void run() { - boolean a = true; - boolean b = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - if (b) { - result = true; - } - } else { - result = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char result = 0; - if (a!=0){ - if (b!=0){ - result = 1; - } - } else { - result = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_If_Else2.java b/test/codegen/src/java/com/amd/aparapi/test/If_If_Else2.java deleted file mode 100644 index 3576d6da..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_If_Else2.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class If_If_Else2{ - public void run() { - boolean a = true; - boolean b = true; - @SuppressWarnings("unused") boolean result = false; - - if (a && b) { - result = true; - } else { - result = false; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char result = 0; - if (a!=0 && b!=0){ - result = 1; - } else { - result = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_If_Else_If_.java b/test/codegen/src/java/com/amd/aparapi/test/If_If_Else_If_.java deleted file mode 100644 index adee7b9c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_If_Else_If_.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.amd.aparapi.test; - -public class If_If_Else_If_{ - /* - 1: istore_1 (0:iconst_1) - 3: istore_2 (2:iconst_1) - 5: istore_3 (4:iconst_0) - 7: ifeq 19 (6:iload_1) ? - 11: ifeq 25 (10:iload_2) | ? - 15: istore_3 (14:iconst_1) | | - 16: goto 25 | | + - 20: ifeq 25 (19:iload_2) v | | ? - 24: istore_3 (23:iconst_1) | | | - 25: return v v v - */ - public void run() { - boolean a = true; - boolean b = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - if (b) { - result = true; - } - } else { - if (b) { - result = true; - } - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char result = 0; - if (a!=0){ - if (b!=0){ - result = 1; - } - } else { - if (b!=0){ - result = 1; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_OrOr_And.java b/test/codegen/src/java/com/amd/aparapi/test/If_OrOr_And.java deleted file mode 100644 index 0df343f7..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_OrOr_And.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class If_OrOr_And{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if ((testValue % 2 == 0 || testValue <= 0 || testValue >= 100) && testValue % 4 == 0) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if (((testValue % 2)==0 || testValue<=0 || testValue>=100) && (testValue % 4)==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_While_Else.java b/test/codegen/src/java/com/amd/aparapi/test/If_While_Else.java deleted file mode 100644 index 56084799..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_While_Else.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class If_While_Else{ - public void run() { - boolean a = true; - - if (a) { - while (a) { - a = false; - } - } else { - a = true; - - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - if (a!=0){ - for (; a!=0; a = 0){ - } - } else { - a = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/If_While_Else_While.java b/test/codegen/src/java/com/amd/aparapi/test/If_While_Else_While.java deleted file mode 100644 index 368533d4..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/If_While_Else_While.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.amd.aparapi.test; - -public class If_While_Else_While{ - public void run() { - boolean a = true; - - if (a) { - while (a) { - a = false; - } - } else { - while (!a) { - a = true; - } - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - if (a!=0){ - for (; a!=0; a = 0){ - } - } else { - for (; a==0; a = 1){ - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ImplementsInterface.java b/test/codegen/src/java/com/amd/aparapi/test/ImplementsInterface.java deleted file mode 100644 index 8905b303..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ImplementsInterface.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -interface IFoo{ - public int bar(int n); -} - -public class ImplementsInterface extends Kernel implements IFoo{ - int out[] = new int[1]; - - int ival = 3; - - public int bar(int n) { - return n + ival; - } - - public void run() { - out[0] = bar(1); - @SuppressWarnings("unused") boolean pass = false; - } -} -/**{OpenCL{ -typedef struct This_s{ - int ival; - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_ImplementsInterface__bar(This *this, int n){ - return((n + this->ival)); -} -__kernel void run( - int ival, - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->ival = ival; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_ImplementsInterface__bar(this, 1); - char pass = 0; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IncArrayArgContent.java b/test/codegen/src/java/com/amd/aparapi/test/IncArrayArgContent.java deleted file mode 100644 index 2794b344..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IncArrayArgContent.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -public class IncArrayArgContent{ - - int arr[] = new int[10]; - - public void run() { - - incit(arr); - } - - public void incit(int[] arr) { - arr[0]++; - - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *arr; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_IncArrayArgContent__incit(This *this, __global int* arr){ - arr[0] = arr[0] + 1; - return; -} -__kernel void run( - __global int *arr, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->arr = arr; - this->passid = passid; - { - com_amd_aparapi_test_IncArrayArgContent__incit(this, this->arr); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IncField.java b/test/codegen/src/java/com/amd/aparapi/test/IncField.java deleted file mode 100644 index 8f4a4e11..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IncField.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.amd.aparapi.test; - -public class IncField{ - int field = 1024; - - public void run() { - field++; - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/IndirectRecursion.java b/test/codegen/src/java/com/amd/aparapi/test/IndirectRecursion.java deleted file mode 100644 index 61a2fd61..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/IndirectRecursion.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class IndirectRecursion extends Kernel{ - - public void run() { - intout[0] = foo(10); - @SuppressWarnings("unused") boolean pass = false; - } - - int foo(int n) { - if (n > 0) { - return bar(n); - } - return -1; - } - - int bar(int n) { - return foo(--n); - } - - int intout[] = new int[1]; - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Interface.java b/test/codegen/src/java/com/amd/aparapi/test/Interface.java deleted file mode 100644 index ee242847..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Interface.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.amd.aparapi.test; - -public class Interface{ - - public interface Operator{ - public double operate(double d); - } - - public class SimpleAdder implements Operator{ - public double operate(double d) { - return d + 1.0; - } - } - - public void run() { - out[0] = sa.operate(0.0); - } - - double out[] = new double[1]; - - Operator sa = new SimpleAdder(); -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/LongCompare.java b/test/codegen/src/java/com/amd/aparapi/test/LongCompare.java deleted file mode 100644 index 7466da31..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/LongCompare.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class LongCompare extends Kernel{ - public void run() { - long n1 = 1; - long n2 = 2; - @SuppressWarnings("unused") boolean pass = false; - if (n2 > n1) - pass = true; - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - long n1 = 1L; - long n2 = 2L; - char pass = 0; - if ((n2 - n1)>0){ - pass = 1; - } - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/LongCompares.java b/test/codegen/src/java/com/amd/aparapi/test/LongCompares.java deleted file mode 100644 index d9d5c2bd..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/LongCompares.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class LongCompares{ - public void run() { - - @SuppressWarnings("unused") boolean pass = false; - long l1 = 1L; - long l2 = 1L; - if (l1 > l2) { - pass = true; - } - - } -} -/**{OpenCL{ - typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - long l1 = 1L; - long l2 = 1L; - if ((l1 - l2)>0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Loops.java b/test/codegen/src/java/com/amd/aparapi/test/Loops.java deleted file mode 100644 index 02bc06bb..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Loops.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class Loops{ - public void run() { - int sum = 0; - - for (int i = 0; i < 100; i++) { - sum = sum + ++i; - } - - for (int i = 0; i < 100; i++) { - sum = sum + i++; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int sum = 0; - for (int i = 0; i<100; i++){ - sum = sum + ++i; - } - for (int i = 0; i<100; i++){ - sum = sum + i++; - } - return; - } - } -}OpenCL}**/ - diff --git a/test/codegen/src/java/com/amd/aparapi/test/MathAbs.java b/test/codegen/src/java/com/amd/aparapi/test/MathAbs.java deleted file mode 100644 index 7a45f739..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MathAbs.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class MathAbs extends Kernel{ - public void run() { - double d = -1.0; - float f = -1.0f; - int i = -1; - long n = -1; - @SuppressWarnings("unused") boolean pass = true; - if ((abs(d) != 1) || (abs(f) != 1) || (abs(i) != 1) || (abs(n) != 1)) - pass = false; - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - double d = -1.0; - float f = -1.0f; - int i = -1; - long n = -1L; - char pass = 1; - if (fabs(d)!=1.0 || fabs(f)!=1.0f || abs(i)!=1 || (abs(n) - 1L)!=0){ - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MathDegRad.java b/test/codegen/src/java/com/amd/aparapi/test/MathDegRad.java deleted file mode 100644 index 4871a2de..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MathDegRad.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class MathDegRad extends Kernel{ - public void run() { - double d = -1.0; - float f = -1.0f; - @SuppressWarnings("unused") boolean pass = true; - if ((toRadians(toDegrees(d)) != d) || (toRadians(toDegrees(f)) != f)) - pass = false; - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - double d = -1.0; - float f = -1.0f; - char pass = 1; - if (radians(degrees(d))!=d || radians(degrees(f))!=f){ - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MathFallThru.java b/test/codegen/src/java/com/amd/aparapi/test/MathFallThru.java deleted file mode 100644 index 931b530a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MathFallThru.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class MathFallThru extends Kernel{ - - public void run() { - float f1 = 1.0f; - double d1 = 1.0; - longout[0] = round(ceil(cos(exp(floor(log(pow(d1, d1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(d1, d1))))))))); - intout[0] = round(ceil(cos(exp(floor(log(pow(f1, f1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(f1, f1))))))))); - @SuppressWarnings("unused") boolean pass = false; - } - - long longout[] = new long[1]; - - int intout[] = new int[1]; -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - __global long *longout; - __global int *intout; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global long *longout, - __global int *intout, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->longout = longout; - this->intout = intout; - this->passid = passid; - { - float f1 = 1.0f; - double d1 = 1.0; - this->longout[0] = round((ceil(cos(exp(floor(log(pow(d1, d1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(d1, d1)))))))))); - this->intout[0] = round((ceil(cos(exp(floor(log(pow(f1, f1)))))) + tan(sqrt(sin(rint(acos(asin(atan(atan2(f1, f1)))))))))); - char pass = 0; - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MathMax.java b/test/codegen/src/java/com/amd/aparapi/test/MathMax.java deleted file mode 100644 index 29e47ee7..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MathMax.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class MathMax extends Kernel{ - public void run() { - double d1 = -1.0, d2 = 1.0; - float f1 = -1.0f, f2 = 1.0f; - int i1 = -1, i2 = 1; - long n1 = -1, n2 = 1; - @SuppressWarnings("unused") boolean pass = true; - if ((max(d1, d2) != 1) || (max(f1, f2) != 1) || (max(i1, i2) != 1) || (max(n1, n2) != 1)) - pass = false; - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - double d1 = -1.0; - double d2 = 1.0; - float f1 = -1.0f; - float f2 = 1.0f; - int i1 = -1; - int i2 = 1; - long n1 = -1L; - long n2 = 1L; - char pass = 1; - if (fmax(d1, d2)!=1.0 || fmax(f1, f2)!=1.0f || max(i1, i2)!=1 || (max(n1, n2) - 1L)!=0){ - pass = 0; - } - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MathMin.java b/test/codegen/src/java/com/amd/aparapi/test/MathMin.java deleted file mode 100644 index 33db2291..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MathMin.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class MathMin extends Kernel{ - public void run() { - double d1 = -1.0, d2 = 1.0; - float f1 = -1.0f, f2 = 1.0f; - int i1 = -1, i2 = 1; - long n1 = -1, n2 = 1; - @SuppressWarnings("unused") boolean pass = true; - if ((min(d1, d2) != 1) || (min(f1, f2) != 1) || (min(i1, i2) != 1) || (min(n1, n2) != 1)) - pass = false; - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - double d1 = -1.0; - double d2 = 1.0; - float f1 = -1.0f; - float f2 = 1.0f; - int i1 = -1; - int i2 = 1; - long n1 = -1L; - long n2 = 1L; - char pass = 1; - if (fmin(d1, d2)!=1.0 || fmin(f1, f2)!=1.0f || min(i1, i2)!=1 || (min(n1, n2) - 1L)!=0){ - pass = 0; - } - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MathRemainder.java b/test/codegen/src/java/com/amd/aparapi/test/MathRemainder.java deleted file mode 100644 index 0804174e..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MathRemainder.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class MathRemainder extends Kernel{ - public void run() { - double d1 = 7.0, d2 = 2.0; - float f1 = 7.0f, f2 = 2.0f; - @SuppressWarnings("unused") boolean pass = true; - if ((IEEEremainder(d1, d2) != 1) || (IEEEremainder(f1, f2) != 1)) - pass = false; - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - double d1 = 7.0; - double d2 = 2.0; - float f1 = 7.0f; - float f2 = 2.0f; - char pass = 1; - if (remainder(d1, d2)!=1.0 || remainder(f1, f2)!=1.0f){ - pass = 0; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MultiContinue.java b/test/codegen/src/java/com/amd/aparapi/test/MultiContinue.java deleted file mode 100644 index dfb00d14..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MultiContinue.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.amd.aparapi.test; - -public class MultiContinue{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - for (int i = 0; i < 10; i++) { - if (i == 5) { - continue; - } else { - if (i == 2) { - continue; - } - if (i == 1) { - continue; - } - } - if (i == 10) { - continue; - } - pass = true; - } - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - for (int i = 0; i<10; i++){ - if (i==5){ - } else { - if (i==2){ - } else { - if (i==1){ - } else { - if (i==10){ - } else { - pass = 1; - } - } - } - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MultipleAssign.java b/test/codegen/src/java/com/amd/aparapi/test/MultipleAssign.java deleted file mode 100644 index 54e762ec..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MultipleAssign.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.amd.aparapi.test; - -public class MultipleAssign{ - - public void run() { - @SuppressWarnings("unused") int a = 0; - @SuppressWarnings("unused") int b = 0; - @SuppressWarnings("unused") int c = 0; - a = b = c = 4; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int a = 0; - int b = 0; - int c = 0; - a = b = c = 4; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/MultipleAssignExpr.java b/test/codegen/src/java/com/amd/aparapi/test/MultipleAssignExpr.java deleted file mode 100644 index 758ebfc0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/MultipleAssignExpr.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -public class MultipleAssignExpr{ - - int sum(int lhs, int rhs) { - return (lhs + rhs); - } - - public void run() { - @SuppressWarnings("unused") int a = 0; - @SuppressWarnings("unused") int b = 0; - @SuppressWarnings("unused") int c = 0; - a = b = c = sum(1, 2); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_MultipleAssignExpr__sum(This *this, int lhs, int rhs){ - return((lhs + rhs)); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int a = 0; - int b = 0; - int c = 0; - a = b = c = com_amd_aparapi_test_MultipleAssignExpr__sum(this, 1, 2); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/NaN.java b/test/codegen/src/java/com/amd/aparapi/test/NaN.java deleted file mode 100644 index 19bd7833..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/NaN.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class NaN extends Kernel{ - @Override public void run() { - double d = 1.0E-10; - } -} -/**{OpenCL{ -#pragma OPENCL EXTENSION cl_khr_fp64 : enable - -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - double d = 1.0E-10; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/NewLocalArray.java b/test/codegen/src/java/com/amd/aparapi/test/NewLocalArray.java deleted file mode 100644 index d8567efa..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/NewLocalArray.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amd.aparapi.test; - -public class NewLocalArray{ - - int array[] = new int[4]; - - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if (i++ == 0) - pass = true; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - if (i++==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/NonNullCheck.java b/test/codegen/src/java/com/amd/aparapi/test/NonNullCheck.java deleted file mode 100644 index 4465cf3f..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/NonNullCheck.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class NonNullCheck{ - int[] ints = new int[1024]; - - public void run() { - if (ints != null) { - int value = ints[0]; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *ints; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} - -__kernel void run( - __global int *ints, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->ints = ints; - this->passid = passid; - { - if (this->ints != NULL){ - int value = this->ints[0]; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/NullCheck.java b/test/codegen/src/java/com/amd/aparapi/test/NullCheck.java deleted file mode 100644 index 6349bf47..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/NullCheck.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class NullCheck{ - int[] ints = new int[1024]; - - public void run() { - if (ints == null) { - return; - } - int value = ints[0]; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *ints; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} - -__kernel void run( - __global int *ints, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->ints = ints; - this->passid = passid; - { - if (this->ints == NULL){ - return; - } - int value = this->ints[0]; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayCallHierarchy.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayCallHierarchy.java deleted file mode 100644 index 2cd587ca..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayCallHierarchy.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayCallHierarchy extends Kernel{ - - final static int size = 16; - - static class DummyParent{ - int intField; - - int field2; - - public DummyParent() { - intField = -3; - field2 = -4; - } - - public int getIntField() { - return intField; - } - - public void setIntField(int x) { - intField = x; - } - - public void call2() { - setIntField(intField + field2); - } - - }; - - final static class DummyOOA extends DummyParent{ - int intField; - - public void funnyCall() { - setIntField(intField + getIntField()); - call2(); - } - - public int funnyGet() { - funnyCall(); - setIntField(intField + getIntField()); - return intField + getIntField(); - } - }; - - int something; - - DummyOOA dummy[] = null; - - public ObjectArrayCallHierarchy() { - something = -1; - dummy = new DummyOOA[size]; - dummy[0] = new DummyOOA(); - } - - public int bar(int x) { - return -x; - } - - public void run() { - int myId = getGlobalId(); - dummy[myId].intField = bar(2) + dummy[myId].funnyGet(); - } -} - -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayCommonSuper.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayCommonSuper.java deleted file mode 100644 index 9fef5b8b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayCommonSuper.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayCommonSuper extends Kernel{ - - final static int size = 16; - - static class DummyParent{ - int intField; - - public DummyParent() { - intField = -3; - } - - public int getIntField() { - return intField; - } - }; - - final static class DummyBrother extends DummyParent{ - int brosInt; - - public int getBrosInt() { - return brosInt; - } - }; - - final static class DummySister extends DummyParent{ - int sisInt; - - public int getSisInt() { - return sisInt; - } - }; - - DummyBrother db[] = new DummyBrother[size]; - - DummySister ds[] = new DummySister[size]; - - public ObjectArrayCommonSuper() { - db[0] = new DummyBrother(); - ds[0] = new DummySister(); - } - - public void run() { - int myId = getGlobalId(); - db[myId].intField = db[myId].getIntField() + db[myId].getBrosInt(); - ds[myId].intField = ds[myId].getIntField() + ds[myId].getSisInt(); - } -} - -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberAccess.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberAccess.java deleted file mode 100644 index b721968c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberAccess.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayMemberAccess extends Kernel{ - - final static class DummyOOA{ - int mem; - - float floatField; - - public DummyOOA() { - mem = -3; - floatField = -3; - } - - public int getMem() { - return mem; - } - - public void setMem(int x) { - mem = x; - } - - public float getFloatField() { - return floatField; - } - - public void setFloatField(float x) { - floatField = x; - } - - }; - - int out[] = new int[2]; - - int something; - - DummyOOA dummy[] = null; - - final int size = 64; - - public ObjectArrayMemberAccess() { - something = -1; - dummy = new DummyOOA[size]; - - dummy[0] = new DummyOOA(); - } - - public int getSomething() { - return something; - } - - public int bar(int x) { - return -x; - } - - public void run() { - int myId = getGlobalId(); - dummy[myId].mem = dummy[myId].mem + 2; - dummy[myId].floatField = dummy[myId].floatField + (float) 2.0; - } -} - -/**{OpenCL{ -typedef struct com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA_s{ - int mem; - float floatField; - -} com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA; - -typedef struct This_s{ - __global com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA *dummy; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global com_amd_aparapi_test_ObjectArrayMemberAccess$DummyOOA *dummy, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->dummy = dummy; - this->passid = passid; - { - int myId = get_global_id(0); - this->dummy[myId].mem=this->dummy[myId].mem + 2; - this->dummy[myId].floatField=this->dummy[myId].floatField + 2.0f; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberBadGetter.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberBadGetter.java deleted file mode 100644 index b2225787..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberBadGetter.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayMemberBadGetter extends Kernel{ - - final class DummyOOA{ - int mem; - - float floatField; - - float theOtherFloatField; - - public float getFloatField() { - //return floatField; - return theOtherFloatField; - } - - public void setFloatField(float x) { - floatField = x; - } - }; - - DummyOOA dummy[] = null; - - final int size = 64; - - public ObjectArrayMemberBadGetter() { - dummy = new DummyOOA[size]; - - dummy[0] = new DummyOOA(); - } - - public void run() { - int myId = getGlobalId(); - dummy[myId].setFloatField(dummy[myId].getFloatField() + (float) 2.0); - } -} - -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberBadSetter.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberBadSetter.java deleted file mode 100644 index b8da86a9..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberBadSetter.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayMemberBadSetter extends Kernel{ - - final class DummyOOA{ - int mem; - - float floatField; - - float theOtherFloatField; - - public float getFloatField() { - return floatField; - } - - public void setFloatField(float x) { - theOtherFloatField = x; - } - }; - - DummyOOA dummy[] = null; - - final int size = 64; - - public ObjectArrayMemberBadSetter() { - dummy = new DummyOOA[size]; - - dummy[0] = new DummyOOA(); - } - - public void run() { - int myId = getGlobalId(); - dummy[myId].setFloatField(dummy[myId].getFloatField() + (float) 2.0); - } -} - -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberCall.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberCall.java deleted file mode 100644 index ef558902..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberCall.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayMemberCall extends Kernel{ - - final static class DummyOOA{ - int mem; - - public DummyOOA() { - mem = -3; - } - - public int getMem() { - return mem; - } - - public void setMem(int x) { - mem = x; - } - - public int addEmUp(int x, int y) { - return x + y; - } - - public int addToMem(int x) { - return x + mem; - } - - public int addEmUpPlusOne(int x, int y) { - return addEmUp(x, y) + 1 + getMem(); - } - }; - - int out[] = new int[2]; - - int something; - - DummyOOA dummy[] = null; - - final int size = 64; - - public ObjectArrayMemberCall() { - something = -1; - dummy = new DummyOOA[size]; - - dummy[0] = new DummyOOA(); - } - - public int getSomething() { - return something; - } - - public int bar(int x) { - return -x; - } - - public void run() { - int myId = getGlobalId(); - dummy[myId].mem = dummy[myId].addEmUp(dummy[myId].mem, 2); - int tmp = dummy[myId].addToMem(2); - int tmp2 = dummy[myId].addEmUpPlusOne(2, tmp); - } -} - -/**{OpenCL{ -typedef struct com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA_s{ - int mem; - -} com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA; - -typedef struct This_s{ - __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *dummy; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__getMem( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this){ - return(this->mem); -} -int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x, int y){ - return((x + y)); -} -int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUpPlusOne( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x, int y){ - return(((com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp(this, x, y) + 1) + com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__getMem(this))); -} -int com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addToMem( __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *this, int x){ - return((x + this->mem)); -} -__kernel void run( - __global com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA *dummy, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->dummy = dummy; - this->passid = passid; - { - int myId = get_global_id(0); - this->dummy[myId].mem=com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUp( &(this->dummy[myId]), this->dummy[myId].mem, 2); - int tmp = com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addToMem( &(this->dummy[myId]), 2); - int tmp2 = com_amd_aparapi_test_ObjectArrayMemberCall$DummyOOA__addEmUpPlusOne( &(this->dummy[myId]), 2, tmp); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberGetterSetter.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberGetterSetter.java deleted file mode 100644 index b48fdd42..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberGetterSetter.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -final class DummyOOA{ - int mem; - - float floatField; - - long longField; - - boolean boolField; - - byte byteField; - - public DummyOOA() { - mem = 8; - } - - public boolean isBoolField() { - return boolField; - } - - public boolean getBoolField() { - return boolField; - } - - public void setBoolField(boolean x) { - //boolField = x & true; - boolField = x; - } - - public int getMem() { - return mem; - } - - public void setMem(int x) { - mem = x; - } - - public float getFloatField() { - return floatField; - } - - public void setFloatField(float x) { - floatField = x; - } - - public long getLongField() { - return longField; - } - - public void setLongField(long x) { - longField = x; - } -}; - -final class TheOtherOne{ - int mem; - - public TheOtherOne() { - mem = 8; - } - - public int getMem() { - return mem; - } - - public void setMem(int x) { - mem = x; - } -}; - -public class ObjectArrayMemberGetterSetter extends Kernel{ - - int out[] = new int[2]; - - int something; - - DummyOOA dummy[] = null; - - TheOtherOne other[] = null; - - final int size = 64; - - public ObjectArrayMemberGetterSetter() { - something = -1; - dummy = new DummyOOA[size]; - other = new TheOtherOne[size]; - - dummy[0] = new DummyOOA(); - other[0] = new TheOtherOne(); - } - - public int getSomething() { - return something; - } - - public int bar(int x) { - return -x; - } - - public void run() { - int myId = getGlobalId(); - - int tmp = dummy[myId].getMem(); - - dummy[myId].setMem(dummy[myId].getMem() + 2); - - dummy[myId].setMem(other[myId].getMem() + getSomething()); - - other[myId].setMem(other[myId].getMem() + getSomething()); - - dummy[myId].setLongField(dummy[myId].getLongField() + 2); - - dummy[myId].setFloatField(dummy[myId].getFloatField() + (float) 2.0); - - dummy[myId].setBoolField(dummy[myId].getBoolField() | dummy[myId].isBoolField()); - - out[myId] = getSomething(); - } -} -/**{OpenCL{ -typedef struct com_amd_aparapi_test_TheOtherOne_s{ - int mem; - -} com_amd_aparapi_test_TheOtherOne; - -typedef struct com_amd_aparapi_test_DummyOOA_s{ - long longField; - float floatField; - int mem; - char boolField; - char _pad_17; - char _pad_18; - char _pad_19; - char _pad_20; - char _pad_21; - char _pad_22; - char _pad_23; - -} com_amd_aparapi_test_DummyOOA; - -typedef struct This_s{ - int something; - __global com_amd_aparapi_test_DummyOOA *dummy; - __global com_amd_aparapi_test_TheOtherOne *other; - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_DummyOOA__setBoolField( __global com_amd_aparapi_test_DummyOOA *this, char x){ - this->boolField=x; - return; -} -char com_amd_aparapi_test_DummyOOA__isBoolField( __global com_amd_aparapi_test_DummyOOA *this){ - return(this->boolField); -} -char com_amd_aparapi_test_DummyOOA__getBoolField( __global com_amd_aparapi_test_DummyOOA *this){ - return(this->boolField); -} -void com_amd_aparapi_test_DummyOOA__setFloatField( __global com_amd_aparapi_test_DummyOOA *this, float x){ - this->floatField=x; - return; -} -float com_amd_aparapi_test_DummyOOA__getFloatField( __global com_amd_aparapi_test_DummyOOA *this){ - return(this->floatField); -} -void com_amd_aparapi_test_DummyOOA__setLongField( __global com_amd_aparapi_test_DummyOOA *this, long x){ - this->longField=x; - return; -} -long com_amd_aparapi_test_DummyOOA__getLongField( __global com_amd_aparapi_test_DummyOOA *this){ - return(this->longField); -} -void com_amd_aparapi_test_TheOtherOne__setMem( __global com_amd_aparapi_test_TheOtherOne *this, int x){ - this->mem=x; - return; -} -int com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(This *this){ - return(this->something); -} -int com_amd_aparapi_test_TheOtherOne__getMem( __global com_amd_aparapi_test_TheOtherOne *this){ - return(this->mem); -} -void com_amd_aparapi_test_DummyOOA__setMem( __global com_amd_aparapi_test_DummyOOA *this, int x){ - this->mem=x; - return; -} -int com_amd_aparapi_test_DummyOOA__getMem( __global com_amd_aparapi_test_DummyOOA *this){ - return(this->mem); -} -__kernel void run( - int something, - __global com_amd_aparapi_test_DummyOOA *dummy, - __global com_amd_aparapi_test_TheOtherOne *other, - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->something = something; - this->dummy = dummy; - this->other = other; - this->out = out; - this->passid = passid; - { - int myId = get_global_id(0); - int tmp = com_amd_aparapi_test_DummyOOA__getMem( &(this->dummy[myId])); - com_amd_aparapi_test_DummyOOA__setMem( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getMem( &(this->dummy[myId])) + 2)); - com_amd_aparapi_test_DummyOOA__setMem( &(this->dummy[myId]), (com_amd_aparapi_test_TheOtherOne__getMem( &(this->other[myId])) + com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this))); - com_amd_aparapi_test_TheOtherOne__setMem( &(this->other[myId]), (com_amd_aparapi_test_TheOtherOne__getMem( &(this->other[myId])) + com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this))); - com_amd_aparapi_test_DummyOOA__setLongField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getLongField( &(this->dummy[myId])) + 2L)); - com_amd_aparapi_test_DummyOOA__setFloatField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getFloatField( &(this->dummy[myId])) + 2.0f)); - com_amd_aparapi_test_DummyOOA__setBoolField( &(this->dummy[myId]), (com_amd_aparapi_test_DummyOOA__getBoolField( &(this->dummy[myId])) | com_amd_aparapi_test_DummyOOA__isBoolField( &(this->dummy[myId])))); - this->out[myId] = com_amd_aparapi_test_ObjectArrayMemberGetterSetter__getSomething(this); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberHierarchy.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberHierarchy.java deleted file mode 100644 index b8cb163b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberHierarchy.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectArrayMemberHierarchy extends Kernel{ - - final static int size = 16; - - static class DummyParent{ - int intField; - - public DummyParent() { - intField = -3; - } - - public int getIntField() { - return intField; - } - - public void setIntField(int x) { - intField = x; - } - - public int foo() { - return 42 + getIntField(); - } - - }; - - final static class DummyOOA extends DummyParent{ - float floatField; - - public float getFloatField() { - return floatField; - } - - public void setFloatField(float x) { - floatField = x; - } - }; - - int something; - - DummyOOA dummy[] = null; - - public ObjectArrayMemberHierarchy() { - something = -1; - dummy = new DummyOOA[size]; - - dummy[0] = new DummyOOA(); - } - - public int getSomething() { - return something; - } - - public int bar(int x) { - return -x; - } - - public void run() { - int myId = getGlobalId(); - dummy[myId].intField = dummy[myId].getIntField() + 2 + getSomething(); - dummy[myId].setFloatField(dummy[myId].floatField + (float) 2.0); - } -} - -/**{OpenCL{ -typedef struct com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA_s{ - float floatField; - int intField; - -} com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA; - -typedef struct This_s{ - int something; - __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -void com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this, float x){ - this->floatField=x; - return; -} -int com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(This *this){ - return(this->something); -} -int com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *this){ - return(this->intField); -} -__kernel void run( - int something, - __global com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA *dummy, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->something = something; - this->dummy = dummy; - this->passid = passid; - { - int myId = get_global_id(0); - this->dummy[myId].intField=(com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyParent__getIntField( &(this->dummy[myId])) + 2) + com_amd_aparapi_test_ObjectArrayMemberHierarchy__getSomething(this); - com_amd_aparapi_test_ObjectArrayMemberHierarchy$DummyOOA__setFloatField( &(this->dummy[myId]), (this->dummy[myId].floatField + 2.0f)); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberNotFinal.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberNotFinal.java deleted file mode 100644 index bcc0621d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectArrayMemberNotFinal.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -class DummyOOANF{ - int mem; - - float floatField; - - long longField; - - boolean boolField; - - byte byteField; - - public DummyOOANF() { - mem = 8; - } - - public boolean isBoolField() { - return boolField; - } - - public boolean getBoolField() { - return boolField; - } - - public void setBoolField(boolean x) { - //boolField = x & true; - boolField = x; - } - - public int getMem() { - return mem; - } - - public void setMem(int x) { - mem = x; - } - - public float getFloatField() { - return floatField; - } - - public void setFloatField(float x) { - floatField = x; - } - - public long getLongField() { - return longField; - } - - public void setLongField(long x) { - longField = x; - } -}; - -public class ObjectArrayMemberNotFinal extends Kernel{ - - int out[] = new int[2]; - - int something; - - DummyOOANF dummy[] = null; - - final int size = 64; - - public ObjectArrayMemberNotFinal() { - something = -1; - dummy = new DummyOOANF[size]; - - dummy[0] = new DummyOOANF(); - } - - public int getSomething() { - return something; - } - - public int bar(int x) { - return -x; - } - - public void run() { - int myId = getGlobalId(); - - int tmp = dummy[myId].getMem(); - - dummy[myId].setMem(dummy[myId].getMem() + 2); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectRefCopy.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectRefCopy.java deleted file mode 100644 index 1163b091..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectRefCopy.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectRefCopy extends Kernel{ - - final static class DummyOOA{ - int mem; - - float floatField; - }; - - final int size = 8; - - DummyOOA dummy[] = new DummyOOA[size]; - - public void run() { - int myId = getGlobalId(); - dummy[myId] = dummy[myId + 1]; - } -} - -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ObjectWithinObject.java b/test/codegen/src/java/com/amd/aparapi/test/ObjectWithinObject.java deleted file mode 100644 index e38658b9..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ObjectWithinObject.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class ObjectWithinObject extends Kernel{ - - final static class DummyOOA{ - int mem; - - float floatField; - - DummyOOA next; - - }; - - final int size = 8; - - DummyOOA dummy[] = new DummyOOA[size]; - - public void run() { - int myId = getGlobalId(); - dummy[myId].mem = dummy[myId].next.mem + 4; - } -} - -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/OrAndOrPrecedence.java b/test/codegen/src/java/com/amd/aparapi/test/OrAndOrPrecedence.java deleted file mode 100644 index 4160bdcc..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/OrAndOrPrecedence.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test; - -public class OrAndOrPrecedence{ - public void run() { - boolean a = true; - boolean b = true; - boolean c = true; - boolean d = true; - @SuppressWarnings("unused") boolean pass = false; - - if ((a || b) && (c || d)) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 1; - char c = 1; - char d = 1; - char pass = 0; - if ((a!=0 || b!=0) && (c!=0 || d!=0)){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/OverloadMethod.java b/test/codegen/src/java/com/amd/aparapi/test/OverloadMethod.java deleted file mode 100644 index d14e275f..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/OverloadMethod.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class OverloadMethod extends Kernel{ - public void run() { - out[0] = foo(2) + foo(2, 3); - } - - int foo(int n) { - return n + 1; - } - - int foo(int a, int b) { - return min(a, b); - } - - int out[] = new int[1]; -} -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_OverloadMethod__foo(This *this, int a, int b){ - return(min(a, b)); -} -int com_amd_aparapi_test_OverloadMethod__foo(This *this, int n){ - return((n + 1)); -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_OverloadMethod__foo(this, 2) + com_amd_aparapi_test_OverloadMethod__foo(this, 2, 3); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/OverriddenKernelField.java b/test/codegen/src/java/com/amd/aparapi/test/OverriddenKernelField.java deleted file mode 100644 index 3ffec7da..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/OverriddenKernelField.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -class OverriddenKernelFieldParent extends Kernel{ - int out[] = new int[1]; - - int foo(int n) { - out[0] = n + 1; - return out[0]; - } - - public void run() { - out[0] = foo(3); - } -} - -public class OverriddenKernelField extends OverriddenKernelFieldParent{ - public void run() { - out[0] = foo(2); - } - - int foo(int n) { - return super.foo(n + 1); - } - - int out[] = new int[1]; -} -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_OverriddenKernelFieldParent__foo(This *this, int n){ - this->out[0] = n + 1; - return(this->out[0]); -} -int com_amd_aparapi_test_OverriddenKernelField__foo(This *this, int n){ - return(com_amd_aparapi_test_OverriddenKernelFieldParent__foo(this, (n + 1))); -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_OverriddenKernelField__foo(this, 2); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PlayPen.java b/test/codegen/src/java/com/amd/aparapi/test/PlayPen.java deleted file mode 100644 index bf17b937..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PlayPen.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.amd.aparapi.test; - -public class PlayPen{ - public void run() { - int testValue = 10; - @SuppressWarnings("unused") boolean pass = false; - - if ((testValue % 2 == 0 || testValue <= 0 && (testValue >= 100) && testValue % 4 == 0)) { - pass = true; - } - - if ((testValue < 3 || testValue > 5) && (testValue < 2 || testValue > 2) || testValue > 5) { - pass = true; - } - boolean a = false, b = false, c = false, d = false, e = false, f = false; - if ((a || b && c && d) && e || f) { - pass = true; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int testValue = 10; - char pass = 0; - if ((testValue % 2)==0 || testValue<=0 && testValue>=100 && (testValue % 4)==0){ - pass = 1; - } - if ((testValue<3 || testValue>5) && (testValue<2 || testValue>2) || testValue>5){ - pass = 1; - } - char a = 0; - char b = 0; - char c = 0; - char d = 0; - char e = 0; - char f = 0; - if ((a!=0 || b!=0 && c!=0 && d!=0) && e!=0 || f!=0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostDecArrayItem.java b/test/codegen/src/java/com/amd/aparapi/test/PostDecArrayItem.java deleted file mode 100644 index a1414457..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostDecArrayItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.amd.aparapi.test; - -public class PostDecArrayItem{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - void actuallyDoIt(int a) { - - } - - public void run() { - int a = 10; - values[a] = results[a]--; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *values; - __global int *results; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *values, - __global int *results, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->results = results; - this->passid = passid; - { - int a = 10; - this->values[a] = this->results[a]--; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostDecByte.java b/test/codegen/src/java/com/amd/aparapi/test/PostDecByte.java deleted file mode 100644 index 078cd388..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostDecByte.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class PostDecByte{ - - /** - * This is a nonsense test, but it should be emitted correctly to return the - * original value of a - */ - byte incByte(byte a) { - return a++; - } - - public void run() { - byte startValue = (byte) 3; - @SuppressWarnings("unused") byte result = incByte(startValue--); - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -char com_amd_aparapi_test_PostDecByte__incByte(This *this, char a){ - return(a++); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char startValue = 3; - char result = com_amd_aparapi_test_PostDecByte__incByte(this, startValue--); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostDecLocal.java b/test/codegen/src/java/com/amd/aparapi/test/PostDecLocal.java deleted file mode 100644 index 4e71f5a1..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostDecLocal.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class PostDecLocal{ - - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if (i-- == 0) - pass = true; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - if (i--==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostDecPostInc.java b/test/codegen/src/java/com/amd/aparapi/test/PostDecPostInc.java deleted file mode 100644 index f66a80a6..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostDecPostInc.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.amd.aparapi.test; - -public class PostDecPostInc{ - - public void run() { - int i = 0; - @SuppressWarnings("unused") int result = 0; - result = i-- + i++; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int i = 0; - int result = 0; - result = i-- + i++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayIndexAndElement.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayIndexAndElement.java deleted file mode 100644 index 4d589226..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayIndexAndElement.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncArrayIndexAndElement{ - - int array[] = new int[4]; - - public void run() { - int i = 0; - array[i++]++; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *array; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *array, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->array = array; - this->passid = passid; - { - int i = 0; - this->array[i++] = this->array[i] + 1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItem.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItem.java deleted file mode 100644 index 7bb1abe8..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncArrayItem{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - void actuallyDoIt(int a) { - - } - - public void run() { - int a = 10; - values[a] = results[a]++; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *values; - __global int *results; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *values, - __global int *results, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->results = results; - this->passid = passid; - { - int a = 10; - this->values[a] = this->results[a]++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItemAsParameter.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItemAsParameter.java deleted file mode 100644 index 53473341..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItemAsParameter.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncArrayItemAsParameter{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - int actuallyDoIt(int a) { - return 1; - } - - int y = 2; - - public void run() { - actuallyDoIt(results[y]++); - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *results; - int y; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_PostIncArrayItemAsParameter__actuallyDoIt(This *this, int a){ - return(1); -} -__kernel void run( - __global int *results, - int y, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->results = results; - this->y = y; - this->passid = passid; - { - com_amd_aparapi_test_PostIncArrayItemAsParameter__actuallyDoIt(this, this->results[this->y]++); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItemFieldIndex.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItemFieldIndex.java deleted file mode 100644 index 37ed2bdf..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncArrayItemFieldIndex.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncArrayItemFieldIndex{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - public int a = 10; - - public void run() { - values[a] = results[a]++; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *values; - int a; - __global int *results; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *values, - int a, - __global int *results, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->a = a; - this->results = results; - this->passid = passid; - { - this->values[this->a] = this->results[this->a]++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncByte.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncByte.java deleted file mode 100644 index 130e2457..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncByte.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncByte{ - - /** - * This is a nonsense test, but it should be emitted correctly to return the - * original value of a - */ - byte incByte(byte a) { - return a++; - } - - public void run() { - byte startValue = (byte) 3; - @SuppressWarnings("unused") byte result = incByte(startValue++); - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -char com_amd_aparapi_test_PostIncByte__incByte(This *this, char a){ - return(a++); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char startValue = 3; - char result = com_amd_aparapi_test_PostIncByte__incByte(this, startValue++); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncByteField.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncByteField.java deleted file mode 100644 index 729256f1..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncByteField.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncByteField{ - - byte z = (byte) 3; - - byte incByte(byte _a) { - return _a++; - } - - public void run() { - - z = incByte(z++); - - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncInt.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncInt.java deleted file mode 100644 index bff8fc0e..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncInt.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncInt{ - - int foo(int a) { - return a; - } - - public void run() { - int y = 2; - foo(y++); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_PostIncInt__foo(This *this, int a){ - return(a); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int y = 2; - com_amd_aparapi_test_PostIncInt__foo(this,y++); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncIntField.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncIntField.java deleted file mode 100644 index 80aaaf4d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncIntField.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncIntField{ - - int _y = 2; - - int incInt(int a) { - return a++; - } - - public void run() { - - incInt(_y++); - - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncLocal.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncLocal.java deleted file mode 100644 index 9c3c884c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncLocal.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncLocal{ - - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if (i++ == 0) - pass = true; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - if (i++==0){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncLocalStandalone.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncLocalStandalone.java deleted file mode 100644 index 3a9ac0ca..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncLocalStandalone.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncLocalStandalone{ - - public void run() { - - int i = 0; - i++; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int i = 0; - i++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PostIncLocalTwice.java b/test/codegen/src/java/com/amd/aparapi/test/PostIncLocalTwice.java deleted file mode 100644 index 3b3beb6a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PostIncLocalTwice.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class PostIncLocalTwice{ - - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if (i++ + i++ == 1) - pass = true; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - if ((i++ + i++)==1){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreDecArrayIndexAndElement.java b/test/codegen/src/java/com/amd/aparapi/test/PreDecArrayIndexAndElement.java deleted file mode 100644 index 827d5b3b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreDecArrayIndexAndElement.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class PreDecArrayIndexAndElement{ - - int array[] = new int[4]; - - public void run() { - int i = 0; - --array[--i]; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *array; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *array, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->array = array; - this->passid = passid; - { - int i = 0; - this->array[--i] = this->array[i] - 1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreDecArrayItem.java b/test/codegen/src/java/com/amd/aparapi/test/PreDecArrayItem.java deleted file mode 100644 index 7bd88923..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreDecArrayItem.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -public class PreDecArrayItem{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - public void run() { - int y = 2; - values[y] = --results[y]; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *values; - __global int *results; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *values, - __global int *results, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->results = results; - this->passid = passid; - { - int y = 2; - this->values[y] = --this->results[y]; - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreDecPostInc.java b/test/codegen/src/java/com/amd/aparapi/test/PreDecPostInc.java deleted file mode 100644 index 94cf3dc1..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreDecPostInc.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class PreDecPostInc{ - - public void run() { - int i = 0; - @SuppressWarnings("unused") int result = 0; - result = --i + i++; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int i = 0; - int result = 0; - i--; - result = i + i++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncArrayIndexAndElement.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncArrayIndexAndElement.java deleted file mode 100644 index 6438df47..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncArrayIndexAndElement.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncArrayIndexAndElement{ - - int array[] = new int[4]; - - public void run() { - int i = 0; - ++array[++i]; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *array; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *array, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->array = array; - this->passid = passid; - { - int i = 0; - this->array[++i] = this->array[i] + 1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncArrayItem.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncArrayItem.java deleted file mode 100644 index 0f1c7d8c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncArrayItem.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncArrayItem{ - - final static int START_SIZE = 128; - - public int[] values = new int[START_SIZE]; - - public int[] results = new int[START_SIZE]; - - public void run() { - int y = 2; - values[y] = ++results[y]; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *values; - __global int *results; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *values, - __global int *results, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->results = results; - this->passid = passid; - { - int y = 2; - this->values[y] = ++this->results[y]; - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncByte.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncByte.java deleted file mode 100644 index 051cc9f4..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncByte.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncByte{ - - byte preIncByte(byte a) { - return ++a; - } - - public void run() { - byte initValue = 0; - @SuppressWarnings("unused") byte result = preIncByte(++initValue); - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -char com_amd_aparapi_test_PreIncByte__preIncByte(This *this, char a){ - a = (char )(a + 1); - return(a); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char initValue = 0; - char result = com_amd_aparapi_test_PreIncByte__preIncByte(this, ++initValue); - return; - } -} -}OpenCL}**/ - -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -char com_amd_aparapi_test_PreIncByte__preIncByte(This *this, char a){ - return(a=(char )(a + 1)); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char initValue = 0; - char result = com_amd_aparapi_test_PreIncByte__preIncByte(this, initValue=(char )(initValue + 1)); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncByteField.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncByteField.java deleted file mode 100644 index eefbf749..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncByteField.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncByteField{ - - byte z = (byte) 3; - - byte incByte(byte _a) { - return ++_a; - } - - public void run() { - - z = incByte(++z); - - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncInt.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncInt.java deleted file mode 100644 index 38e732f7..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncInt.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncInt{ - - int preIncInt(int a) { - return a; - } - - public void run() { - - int y = 2; - - preIncInt(++y); - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -int com_amd_aparapi_test_PreIncInt__preIncInt(This *this, int a){ - return(a); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int y = 2; - com_amd_aparapi_test_PreIncInt__preIncInt(this,++y); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncIntField.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncIntField.java deleted file mode 100644 index 70914b09..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncIntField.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncIntField{ - - int y = 2; - - int preIncInt(int _a) { - return ++_a; - } - - public void run() { - - preIncInt(++y); - - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncLocal.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncLocal.java deleted file mode 100644 index 80cc0377..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncLocal.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncLocal{ - - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if (++i == 1) - pass = true; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - i++; - if (i==1){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncLocalStandalone.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncLocalStandalone.java deleted file mode 100644 index fee16119..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncLocalStandalone.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncLocalStandalone{ - - public void run() { - - int i = 0; - ++i; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int i = 0; - i++; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/PreIncLocalTwice.java b/test/codegen/src/java/com/amd/aparapi/test/PreIncLocalTwice.java deleted file mode 100644 index eb815bdb..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/PreIncLocalTwice.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class PreIncLocalTwice{ - - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - if (++i + ++i == 3) - pass = true; - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - i++; - if ((i++ + i)==3){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnBooleanNewArray.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnBooleanNewArray.java deleted file mode 100644 index 3c33a06d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnBooleanNewArray.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnBooleanNewArray{ - - boolean[] returnBooleanNewArray() { - - return new boolean[1024]; - } - - public void run() { - returnBooleanNewArray(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnBooleanVarArray.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnBooleanVarArray.java deleted file mode 100644 index 5a5572e5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnBooleanVarArray.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnBooleanVarArray{ - - boolean[] returnBooleanVarArray() { - - boolean[] ba = new boolean[1024]; - - return ba; - } - - public void run() { - returnBooleanVarArray(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnByteArrayNew.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnByteArrayNew.java deleted file mode 100644 index ae4bf395..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnByteArrayNew.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnByteArrayNew{ - - byte[] returnByteArrayNew() { - return new byte[1024]; - } - - public void run() { - returnByteArrayNew(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnByteArrayVar.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnByteArrayVar.java deleted file mode 100644 index d8abe298..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnByteArrayVar.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnByteArrayVar{ - - byte[] returnByteArrayVar() { - byte[] bytes = new byte[1024]; - return bytes; - } - - public void run() { - - returnByteArrayVar(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnDoubleArrayNew.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnDoubleArrayNew.java deleted file mode 100644 index a330d441..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnDoubleArrayNew.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnDoubleArrayNew{ - - double[] returnDoubleArrayNew() { - return new double[1024]; - } - - public void run() { - returnDoubleArrayNew(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnDoubleArrayVar.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnDoubleArrayVar.java deleted file mode 100644 index a3d0f1b3..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnDoubleArrayVar.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnDoubleArrayVar{ - - double[] returnDoubleArrayVar() { - double[] doubles = new double[1024]; - return doubles; - } - - public void run() { - - returnDoubleArrayVar(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnFloatArrayNew.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnFloatArrayNew.java deleted file mode 100644 index caca36a2..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnFloatArrayNew.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnFloatArrayNew{ - - float[] returnFloatArrayNew() { - return new float[1024]; - } - - public void run() { - returnFloatArrayNew(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnFloatArrayVar.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnFloatArrayVar.java deleted file mode 100644 index 5e973244..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnFloatArrayVar.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnFloatArrayVar{ - - float[] returnFloatArrayVar() { - float[] floats = new float[1024]; - return floats; - } - - public void run() { - - returnFloatArrayVar(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnIntArrayNew.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnIntArrayNew.java deleted file mode 100644 index 6ca7e75c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnIntArrayNew.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnIntArrayNew{ - - int[] returnIntArrayNew() { - return new int[1024]; - } - - public void run() { - returnIntArrayNew(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnIntArrayVar.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnIntArrayVar.java deleted file mode 100644 index b9e5d7da..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnIntArrayVar.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnIntArrayVar{ - - int[] returnIntArrayVar() { - int[] ints = new int[1024]; - return ints; - } - - public void run() { - - returnIntArrayVar(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnLongArrayNew.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnLongArrayNew.java deleted file mode 100644 index 72e108d2..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnLongArrayNew.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnLongArrayNew{ - - long[] returnLongArrayNew() { - return new long[1024]; - } - - public void run() { - returnLongArrayNew(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnLongArrayVar.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnLongArrayVar.java deleted file mode 100644 index b5fa36c2..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnLongArrayVar.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnLongArrayVar{ - - long[] returnLongArrayVar() { - long[] longs = new long[1024]; - return longs; - } - - public void run() { - - returnLongArrayVar(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnPostIncInt.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnPostIncInt.java deleted file mode 100644 index c06d6ac8..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnPostIncInt.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnPostIncInt{ - - int returnPostIncInt(int value) { - - return value++; - } - - public void run() { - returnPostIncInt(3); - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_ReturnPostIncInt__returnPostIncInt(This *this, int value){ - return(value++); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - com_amd_aparapi_test_ReturnPostIncInt__returnPostIncInt(this, 3); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnPreIncInt.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnPreIncInt.java deleted file mode 100644 index 9f3da31b..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnPreIncInt.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnPreIncInt{ - - int returnPreIncInt(int value) { - - return ++value; - } - - public void run() { - returnPreIncInt(3); - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_ReturnPreIncInt__returnPreIncInt(This *this, int value){ - value++; - return(value); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - com_amd_aparapi_test_ReturnPreIncInt__returnPreIncInt(this, 3); - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnShortArrayNew.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnShortArrayNew.java deleted file mode 100644 index 20f33bdd..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnShortArrayNew.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnShortArrayNew{ - - short[] returnShortArrayNew() { - return new short[1024]; - } - - public void run() { - returnShortArrayNew(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/ReturnShortArrayVar.java b/test/codegen/src/java/com/amd/aparapi/test/ReturnShortArrayVar.java deleted file mode 100644 index dfa51543..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/ReturnShortArrayVar.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.amd.aparapi.test; - -public class ReturnShortArrayVar{ - - short[] returnShortArrayVar() { - short[] shorts = new short[1024]; - return shorts; - } - - public void run() { - - returnShortArrayVar(); - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/RightShifts.java b/test/codegen/src/java/com/amd/aparapi/test/RightShifts.java deleted file mode 100644 index 34e726d8..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/RightShifts.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class RightShifts extends Kernel{ - - int iout[] = new int[10]; - - int i1, i2; - - public void run() { - iout[1] = i1 >> i2; - iout[2] = i1 >>> i2; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *iout; - int i1; - int i2; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *iout, - int i1, - int i2, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->iout = iout; - this->i1 = i1; - this->i2 = i2; - this->passid = passid; - { - this->iout[1] = this->i1 >> this->i2; - this->iout[2] = ((unsigned int)this->i1) >> this->i2; - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Sequence.java b/test/codegen/src/java/com/amd/aparapi/test/Sequence.java deleted file mode 100644 index 1862e23d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Sequence.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.amd.aparapi.test; - -public class Sequence{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/StaticFieldStore.java b/test/codegen/src/java/com/amd/aparapi/test/StaticFieldStore.java deleted file mode 100644 index cdc733d7..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/StaticFieldStore.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.amd.aparapi.test; - -public class StaticFieldStore{ - int[] ints = new int[1024]; - - static int foo = 6; - - public void run() { - foo = ints[0]; - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/StaticMethodCall.java b/test/codegen/src/java/com/amd/aparapi/test/StaticMethodCall.java deleted file mode 100644 index ffea520c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/StaticMethodCall.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class StaticMethodCall extends Kernel{ - public static int add(int i, int j) { - return i + j; - } - - public void run() { - out[0] = add(1, 2); - } - - int out[] = new int[1]; -} - -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -int com_amd_aparapi_test_StaticMethodCall__add(int i, int j){ - return((i + j)); -} -__kernel void run( - __global int *out, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->passid = passid; - { - this->out[0] = com_amd_aparapi_test_StaticMethodCall__add(1, 2); - return; - } -} - -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/SynchronizedMethods.java b/test/codegen/src/java/com/amd/aparapi/test/SynchronizedMethods.java deleted file mode 100644 index 214574d3..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/SynchronizedMethods.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.amd.aparapi.test; - -public class SynchronizedMethods{ - int[] ints = new int[1024]; - - synchronized int doIt(int a) { - return (int) (((int) 1) - a); - } - - int doIt2(int a) { - return (int) (((int) 1) - a); - } - - public void run() { - int foo = 1; - for (int i = 0; i < 1024; i++) { - if (i % 2 == 0) { - ints[i] = doIt(i); - } else { - synchronized (this) { - ints[i] = doIt2(foo); - } - } - } - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/Ternary.java b/test/codegen/src/java/com/amd/aparapi/test/Ternary.java deleted file mode 100644 index d486a94e..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/Ternary.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.amd.aparapi.test; - -public class Ternary{ - - float random() { - return (.1f); - } - - public void run() { - @SuppressWarnings("unused") int count = (random() > .5f) ? +1 : -1; - @SuppressWarnings("unused") int foo = 3; - } - -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -float com_amd_aparapi_test_Ternary__random(This *this){ - return(0.1f); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int count = (com_amd_aparapi_test_Ternary__random(this)>0.5f)?1:-1; - int foo = 3; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/TernaryAnd.java b/test/codegen/src/java/com/amd/aparapi/test/TernaryAnd.java deleted file mode 100644 index a214b7c0..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/TernaryAnd.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test; - -public class TernaryAnd{ - float random() { - return (.1f); - } - - public void run() { - - @SuppressWarnings("unused") int count = ((random()) > .8f) && ((random()) < .2f) ? +1 : -1; - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} - -float com_amd_aparapi_test_TernaryAnd__random(This *this){ - return(0.1f); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int count = (com_amd_aparapi_test_TernaryAnd__random(this)>0.8f && com_amd_aparapi_test_TernaryAnd__random(this)<0.2f)?1:-1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/TernaryAndOr.java b/test/codegen/src/java/com/amd/aparapi/test/TernaryAndOr.java deleted file mode 100644 index 4a1674ee..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/TernaryAndOr.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.amd.aparapi.test; - -public class TernaryAndOr{ - float random() { - return (.1f); - } - - public void run() { - - @SuppressWarnings("unused") int count = random() == 0.f && (random() > .8f) || (random() < .2f) ? +1 : -1; - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -float com_amd_aparapi_test_TernaryAndOr__random(This *this){ - return(0.1f); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int count = (com_amd_aparapi_test_TernaryAndOr__random(this)==0.0f && com_amd_aparapi_test_TernaryAndOr__random(this)>0.8f || com_amd_aparapi_test_TernaryAndOr__random(this)<0.2f)?1:-1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/TernaryNested.java b/test/codegen/src/java/com/amd/aparapi/test/TernaryNested.java deleted file mode 100644 index 7035c0be..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/TernaryNested.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.amd.aparapi.test; - -public class TernaryNested{ - public void run() { - boolean a = false, b = false, c = false; - @SuppressWarnings("unused") int count = a ? b ? 1 : 2 : c ? 3 : 4; - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 0; - char b = 0; - char c = 0; - int count = (a!=0)?(b!=0)?1:2:(c!=0)?3:4; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/TernaryOr.java b/test/codegen/src/java/com/amd/aparapi/test/TernaryOr.java deleted file mode 100644 index db2ba4f1..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/TernaryOr.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.amd.aparapi.test; - -public class TernaryOr{ - float random() { - return (.1f); - } - - public void run() { - - @SuppressWarnings("unused") int count = (random() > .8f || random() < .2f) ? +1 : -1; - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -float com_amd_aparapi_test_TernaryOr__random(This *this){ - return(0.1f); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int count = (com_amd_aparapi_test_TernaryOr__random(this)>0.8f || com_amd_aparapi_test_TernaryOr__random(this)<0.2f)?1:-1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/TwoForLoops.java b/test/codegen/src/java/com/amd/aparapi/test/TwoForLoops.java deleted file mode 100644 index 5297dc7d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/TwoForLoops.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class TwoForLoops extends Kernel{ - public void run() { - for (int i = 0; i < size; i++) { - a[i] = i; - } - - int sum = 0; - for (int i = 0; i < size; i++) { - sum += a[i]; - } - } - - final int size = 100; - - int a[] = new int[size]; - -} -/**{OpenCL{ -typedef struct This_s{ - __global int *a; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} - -__kernel void run( - __global int *a, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->a = a; - this->passid = passid; - { - for (int i = 0; i<100; i++){ - this->a[i] = i; - } - int sum = 0; - for (int i = 0; i<100; i++){ - sum = sum + this->a[i]; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UnrelatedIfElsesWithCommonEndByte.java b/test/codegen/src/java/com/amd/aparapi/test/UnrelatedIfElsesWithCommonEndByte.java deleted file mode 100644 index 0170efaf..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UnrelatedIfElsesWithCommonEndByte.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.amd.aparapi.test; - -public class UnrelatedIfElsesWithCommonEndByte{ - /* - 1: istore_1 (0:iconst_1) - 3: istore_2 (2:iconst_0) - 5: istore_3 (4:iconst_1) - 7: istore 4 (6:iconst_0) - 10: ifeq 39 (9:iload_1) ? - 14: ifeq 23 (13:iload_2) | ? - 18: istore 4 (17:iconst_1) | | - 20: goto 26 | | + - 24: istore 4 (23: iconst_0) | v | - 27: ifeq 36 (26: iload_3) | v ? - 31: istore 4 (30: iconst_1) | | - 33: goto 39 | | + - 37: istore 4 (36: iconst_0) | v | - 39: return v v - */ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - boolean a = true; - boolean b = false; - boolean c = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - if (b) { - result = true; - } else { - result = false; - } - - if (c) { - result = true; - } else { - result = false; - } - } - - } - -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 0; - char c = 1; - char result = 0; - if (a!=0){ - if (b!=0){ - result = 1; - } else { - result = 0; - } - if (c!=0){ - result = 1; - } else { - result = 0; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UnrelatedIfsWithCommonEndByte.java b/test/codegen/src/java/com/amd/aparapi/test/UnrelatedIfsWithCommonEndByte.java deleted file mode 100644 index da23e2ab..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UnrelatedIfsWithCommonEndByte.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.amd.aparapi.test; - -public class UnrelatedIfsWithCommonEndByte{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - boolean a1 = true; - boolean a2 = true; - boolean b = false; - boolean c = true; - boolean outer = true; - @SuppressWarnings("unused") boolean result = false; - if (outer) { - if (a1 && !a2) { - // result = true; - if (b) { - result = true; - } - //result = false; - if (c) { - result = true; - } - // result = false; - } - } - - } - -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a1 = 1; - char a2 = 1; - char b = 0; - char c = 1; - char outer = 1; - char result = 0; - if (outer!=0 && a1!=0 && a2==0){ - if (b!=0){ - result = 1; - } - if (c!=0){ - result = 1; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UnrelatedNestedIfElses.java b/test/codegen/src/java/com/amd/aparapi/test/UnrelatedNestedIfElses.java deleted file mode 100644 index f71032e5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UnrelatedNestedIfElses.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.amd.aparapi.test; - -public class UnrelatedNestedIfElses{ - - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - boolean a = true; - boolean b = false; - boolean c = true; - @SuppressWarnings("unused") boolean result = false; - - if (a) { - if (b) { - result = true; - } else { - result = false; - } - } else { - if (c) { - result = true; - } else { - result = false; - } - } - - } - -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char a = 1; - char b = 0; - char c = 1; - char result = 0; - if (a!=0){ - if (b!=0){ - result = 1; - } else { - result = 0; - } - }else{ - if (c!=0){ - result = 1; - } else { - result = 0; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UseObject.java b/test/codegen/src/java/com/amd/aparapi/test/UseObject.java deleted file mode 100644 index 8af70992..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UseObject.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class UseObject extends Kernel{ - class Dummy{ - public int n; - }; - - Dummy dummy = new Dummy(); - - public void run() { - out[0] = dummy.n; - out[1] = plainInt; - } - - int out[] = new int[2]; - - int plainInt = -1; - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UseObjectArrayLength.java b/test/codegen/src/java/com/amd/aparapi/test/UseObjectArrayLength.java deleted file mode 100644 index 921951de..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UseObjectArrayLength.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class UseObjectArrayLength extends Kernel{ - final class Dummy{ - public int n; - }; - - int out[] = new int[2]; - - Dummy dummy[] = new Dummy[10]; - - public void run() { - out[0] = dummy.length; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global int *out; - __global com_amd_aparapi_test_UseObjectArrayLength$Dummy *dummy; - int dummy__javaArrayLength; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - __global int *out, - __global com_amd_aparapi_test_UseObjectArrayLength$Dummy *dummy, - int dummy__javaArrayLength, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->out = out; - this->dummy = dummy; - this->dummy__javaArrayLength = dummy__javaArrayLength; - this->passid = passid; - { - this->out[0] = this->dummy__javaArrayLength; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UsesArrayLength.java b/test/codegen/src/java/com/amd/aparapi/test/UsesArrayLength.java deleted file mode 100644 index 1d8f0fcc..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UsesArrayLength.java +++ /dev/null @@ -1,130 +0,0 @@ -package com.amd.aparapi.test; - -import com.amd.aparapi.Kernel; - -public class UsesArrayLength extends Kernel{ - - boolean[] values; - - boolean[] results; - - boolean[] results2; - - boolean actuallyDoIt(int index) { - int x = 0; - - // in array index - @SuppressWarnings("unused") boolean y = values[values.length - index]; - - // in addition - x = index + results.length; - - // in subtraction - return (results.length - x > 0); - } - - public void run() { - int myId = 0; - - // in comparison - boolean x = (values.length > 0); - - // in bit AND and as argument - results[myId] = x & actuallyDoIt(values.length); - - // Note results2.length is not used so there should not - // be a results2__javaArrayLength in the emitted source - results2[myId] = !results[myId]; - } -} -/**{OpenCL{ -typedef struct This_s{ - __global char *values; - int values__javaArrayLength; - __global char *results; - int results__javaArrayLength; - __global char *results2; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -char com_amd_aparapi_test_UsesArrayLength__actuallyDoIt(This *this, int index){ - int x = 0; - char y = this->values[(this->values__javaArrayLength - index)]; - x = index + this->results__javaArrayLength; - return(((this->results__javaArrayLength - x)>0)?1:0); -} -__kernel void run( - __global char *values, - int values__javaArrayLength, - __global char *results, - int results__javaArrayLength, - __global char *results2, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->values__javaArrayLength = values__javaArrayLength; - this->results = results; - this->results__javaArrayLength = results__javaArrayLength; - this->results2 = results2; - this->passid = passid; - { - int myId = 0; - char x = (this->values__javaArrayLength>0)?1:0; - this->results[myId] = x & com_amd_aparapi_test_UsesArrayLength__actuallyDoIt(this, this->values__javaArrayLength); - this->results2[myId] = (this->results[myId]==0)?1:0; - return; - } -} -}OpenCL}**/ - -/**{OpenCL{ -typedef struct This_s{ - __global char *values; - int values__javaArrayLength; - __global char *results; - int results__javaArrayLength; - __global char *results2; - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -char com_amd_aparapi_test_UsesArrayLength__actuallyDoIt(This *this, int index){ - int x = 0; - char y = this->values[(this->values__javaArrayLength - index)]; - x = index + this->results__javaArrayLength; - if ((this->results__javaArrayLength - x)>0){ - return(1); - } - return(0); -} -__kernel void run( - __global char *values, - int values__javaArrayLength, - __global char *results, - int results__javaArrayLength, - __global char *results2, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->values = values; - this->values__javaArrayLength = values__javaArrayLength; - this->results = results; - this->results__javaArrayLength = results__javaArrayLength; - this->results2 = results2; - this->passid = passid; - { - int myId = 0; - char x = (this->values__javaArrayLength>0)?1:0; - this->results[myId] = x & com_amd_aparapi_test_UsesArrayLength__actuallyDoIt(this, this->values__javaArrayLength); - this->results2[myId] = (this->results[myId]!=0)?0:1; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UsesNew.java b/test/codegen/src/java/com/amd/aparapi/test/UsesNew.java deleted file mode 100644 index 527bb2cf..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UsesNew.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.amd.aparapi.test; - -public class UsesNew{ - int[] ints = new int[1024]; - - public void run() { - @SuppressWarnings("unused") int foo = 1; - - ints = new int[128]; - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/UsesThrow.java b/test/codegen/src/java/com/amd/aparapi/test/UsesThrow.java deleted file mode 100644 index d9d490b3..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/UsesThrow.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.amd.aparapi.test; - -public class UsesThrow{ - int[] ints = new int[1024]; - - int doIt(int a) throws Exception { - if (a < 0) { - throw new Exception("Zoinks!"); - } - return (int) (((int) 1) - a); - } - - public void run() { - @SuppressWarnings("unused") int foo = 1; - try { - for (int i = 0; i < 1024; i++) { - if (i % 2 == 0) { - ints[i] = doIt(i); - } - } - } catch (Exception e) { - // nothing - } - } -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/VarargsForEach.java b/test/codegen/src/java/com/amd/aparapi/test/VarargsForEach.java deleted file mode 100644 index edfc24c8..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/VarargsForEach.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.amd.aparapi.test; - -public class VarargsForEach{ - public static int max(int... values) { - if (values.length == 0) { - return 0; - } - - int max = Integer.MIN_VALUE; - for (int i : values) { - if (i > max) - max = i; - } - return max; - } - - public void run() { - out[0] = max(1, 4, 5, 9, 3); - } - - int out[] = new int[1]; - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/VarargsSimple.java b/test/codegen/src/java/com/amd/aparapi/test/VarargsSimple.java deleted file mode 100644 index 6ee4864c..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/VarargsSimple.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.amd.aparapi.test; - -public class VarargsSimple{ - public static int max(int... values) { - if (values.length == 0) { - return 0; - } - - int max = Integer.MIN_VALUE; - for (int i = 0; i < values.length; i++) { - if (values[i] > max) - max = i; - } - return max; - } - - public void run() { - out[0] = max(1, 4, 5, 9, 3); - } - - int out[] = new int[1]; - -} -/**{Throws{ClassParseException}Throws}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/While.java b/test/codegen/src/java/com/amd/aparapi/test/While.java deleted file mode 100644 index c76b523d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/While.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.amd.aparapi.test; - -public class While{ - public void run() { - @SuppressWarnings("unused") boolean pass = false; - int i = 0; - while (i < 10) { - pass = true; - i++; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - char pass = 0; - int i = 0; - for (; i<10; i++){ - pass = 1; - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WhileAndMandel.java b/test/codegen/src/java/com/amd/aparapi/test/WhileAndMandel.java deleted file mode 100644 index 4671173d..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WhileAndMandel.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.amd.aparapi.test; - -public class WhileAndMandel{ - int width = 1024; - - float scale = 1f; - - int maxIterations = 10; - - public void run() { - int tid = 0; - - int i = tid % width; - int j = tid / width; - - float x0 = ((i * scale) - ((scale / 2) * width)) / width; - float y0 = ((j * scale) - ((scale / 2) * width)) / width; - - float x = x0; - float y = y0; - - float x2 = x * x; - float y2 = y * y; - - float scaleSquare = scale * scale; - - int count = 0; - int iter = 0; - while ((x2 + y2 <= scaleSquare) && (iter < maxIterations)) { - - y = 2 * x * y + y0; - x = x2 - y2 + x0; - - x2 = x * x; - y2 = y * y; - count++; - ++iter; - } - @SuppressWarnings("unused") int value = (256 * count) / maxIterations; - } -} -/**{OpenCL{ -typedef struct This_s{ - int width; - float scale; - int maxIterations; - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int width, - float scale, - int maxIterations, - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->width = width; - this->scale = scale; - this->maxIterations = maxIterations; - this->passid = passid; - { - int tid = 0; - int i = tid % this->width; - int j = tid / this->width; - float x0 = (((float)i * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float y0 = (((float)j * this->scale) - ((this->scale / 2.0f) * (float)this->width)) / (float)this->width; - float x = x0; - float y = y0; - float x2 = x * x; - float y2 = y * y; - float scaleSquare = this->scale * this->scale; - int count = 0; - int iter = 0; - for (; (x2 + y2)<=scaleSquare && itermaxIterations; iter++){ - y = ((2.0f * x) * y) + y0; - x = (x2 - y2) + x0; - x2 = x * x; - y2 = y * y; - count++; - } - int value = (256 * count) / this->maxIterations; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WhileEmptyLoop.java b/test/codegen/src/java/com/amd/aparapi/test/WhileEmptyLoop.java deleted file mode 100644 index f4f65684..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WhileEmptyLoop.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.amd.aparapi.test; - -public class WhileEmptyLoop{ - public void run() { - int x = 10; - while (x-- != 0) { - } - } -} -/**{OpenCL{ -typedef struct This_s{ - - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - for (int x = 10; x--!=0;){} - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WhileFloatCompound.java b/test/codegen/src/java/com/amd/aparapi/test/WhileFloatCompound.java deleted file mode 100644 index 4ebe3b22..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WhileFloatCompound.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.amd.aparapi.test; - -public class WhileFloatCompound{ - - public float randomFunc() { - - return (1.0f); - } - - public void run() { - float v1 = 1f, v2 = 0f, s = 1f; - - while (s < 1 && s > 0) { - v1 = randomFunc(); - v2 = randomFunc(); - s = v1 * v1 + v2 * v2; - } - - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } -float com_amd_aparapi_test_WhileFloatCompound__randomFunc(This *this){ - return(1.0f); -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - float v1 = 1.0f; - float v2 = 0.0f; - float s = 1.0f; - for (; s<1.0f && s>0.0f; s = (v1 * v1) + (v2 * v2)){ - v1 = com_amd_aparapi_test_WhileFloatCompound__randomFunc(this); - v2 = com_amd_aparapi_test_WhileFloatCompound__randomFunc(this); - } - return; - } - } -}OpenCL}**/ - diff --git a/test/codegen/src/java/com/amd/aparapi/test/WhileIf.java b/test/codegen/src/java/com/amd/aparapi/test/WhileIf.java deleted file mode 100644 index fe73116a..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WhileIf.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.amd.aparapi.test; - -public class WhileIf{ - public void run() { - - int a = 0; - int b = 0; - int c = 0; - int d = 0; - - while (a == a) { - if (b == b) { - c = c; - } - //d = d; // remove this will work - } - } - -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int a = 0; - int b = 0; - int c = 0; - int d = 0; - for (; a==a; ){ - if (b==b){ - c = c; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WhileIfElse.java b/test/codegen/src/java/com/amd/aparapi/test/WhileIfElse.java deleted file mode 100644 index cf84769f..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WhileIfElse.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.amd.aparapi.test; - -public class WhileIfElse{ - public void run() { - - int a = 0; - int b = 0; - int c = 0; - int d = 0; - - while (a == a) { - if (b == b) { - c = c; - } else { - d = d; - } - } - } - -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int a = 0; - int b = 0; - int c = 0; - int d = 0; - for (; a==a; ){ - if (b==b){ - c = c; - } else { - d = d; - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WhileWithoutMutator.java b/test/codegen/src/java/com/amd/aparapi/test/WhileWithoutMutator.java deleted file mode 100644 index 90d250b5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WhileWithoutMutator.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.amd.aparapi.test; - -public class WhileWithoutMutator{ - public void run() { - int x = 0; - while (x != 0) { - } - } -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } - -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int x = 0; - for (; x!=0;){} - return; - } - } -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/While_If_IfElseElse.java b/test/codegen/src/java/com/amd/aparapi/test/While_If_IfElseElse.java deleted file mode 100644 index d1789dea..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/While_If_IfElseElse.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.amd.aparapi.test; - -public class While_If_IfElseElse{ - public void run() { - - int a = 0; - int b = 0; - int c = 0; - int d = 0; - int e = 0; - int f = 0; - int g = 0; - int h = 0; - int i = 0; - int j = 0; - int k = 0; - int l = 0; - int m = 0; - int n = 0; - int o = 0; - int p = 0; - int q = 0; - int r = 0; - - while (a == a) { - b = b; - if (c == c) { - d = d; - if (e == e && f == f) { - g = g; - } - } - if (h == h && i == i) { - if (j == j) { - k = k; - - } - if (l == l) { - if (m == m) { - n = n; - } else if (o == o) { - p = p; - } else { - q = q; - } - r = r; - } - } - } - - } - -} -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; -} -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int a = 0; - int b = 0; - int c = 0; - int d = 0; - int e = 0; - int f = 0; - int g = 0; - int h = 0; - int i = 0; - int j = 0; - int k = 0; - int l = 0; - int m = 0; - int n = 0; - int o = 0; - int p = 0; - int q = 0; - int r = 0; - for (; a==a; ){ - b = b; - if (c==c){ - d = d; - if (e==e && f==f){ - g = g; - } - } - - if (h==h && i==i){ - if (j==j){ - k = k; - } - if (l==l){ - if (m==m){ - n = n; - } else { - if (o==o){ - p = p; - } else { - q = q; - } - } - r = r; - } - } - } - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WideInc.java b/test/codegen/src/java/com/amd/aparapi/test/WideInc.java deleted file mode 100644 index 971ea7f5..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WideInc.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.amd.aparapi.test; - -public class WideInc{ - - public void run() { - int value = 0; - value += 128; - } -} - -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int value = 0; - value+=128; - return; - } -} -}OpenCL}**/ diff --git a/test/codegen/src/java/com/amd/aparapi/test/WideLoad.java b/test/codegen/src/java/com/amd/aparapi/test/WideLoad.java deleted file mode 100644 index 6c272318..00000000 --- a/test/codegen/src/java/com/amd/aparapi/test/WideLoad.java +++ /dev/null @@ -1,543 +0,0 @@ -package com.amd.aparapi.test; - -public class WideLoad{ - - public void run() { - // we need 256 local variables to force the use of wide local variable indices - int value00 = 0; - int value01 = 0; - int value02 = 0; - int value03 = 0; - int value04 = 0; - int value05 = 0; - int value06 = 0; - int value07 = 0; - int value08 = 0; - int value09 = 0; - int value0A = 0; - int value0B = 0; - int value0C = 0; - int value0D = 0; - int value0E = 0; - int value0F = 0; - int value10 = 0; - int value11 = 0; - int value12 = 0; - int value13 = 0; - int value14 = 0; - int value15 = 0; - int value16 = 0; - int value17 = 0; - int value18 = 0; - int value19 = 0; - int value1A = 0; - int value1B = 0; - int value1C = 0; - int value1D = 0; - int value1E = 0; - int value1F = 0; - int value20 = 0; - int value21 = 0; - int value22 = 0; - int value23 = 0; - int value24 = 0; - int value25 = 0; - int value26 = 0; - int value27 = 0; - int value28 = 0; - int value29 = 0; - int value2A = 0; - int value2B = 0; - int value2C = 0; - int value2D = 0; - int value2E = 0; - int value2F = 0; - int value30 = 0; - int value31 = 0; - int value32 = 0; - int value33 = 0; - int value34 = 0; - int value35 = 0; - int value36 = 0; - int value37 = 0; - int value38 = 0; - int value39 = 0; - int value3A = 0; - int value3B = 0; - int value3C = 0; - int value3D = 0; - int value3E = 0; - int value3F = 0; - int value40 = 0; - int value41 = 0; - int value42 = 0; - int value43 = 0; - int value44 = 0; - int value45 = 0; - int value46 = 0; - int value47 = 0; - int value48 = 0; - int value49 = 0; - int value4A = 0; - int value4B = 0; - int value4C = 0; - int value4D = 0; - int value4E = 0; - int value4F = 0; - int value50 = 0; - int value51 = 0; - int value52 = 0; - int value53 = 0; - int value54 = 0; - int value55 = 0; - int value56 = 0; - int value57 = 0; - int value58 = 0; - int value59 = 0; - int value5A = 0; - int value5B = 0; - int value5C = 0; - int value5D = 0; - int value5E = 0; - int value5F = 0; - int value60 = 0; - int value61 = 0; - int value62 = 0; - int value63 = 0; - int value64 = 0; - int value65 = 0; - int value66 = 0; - int value67 = 0; - int value68 = 0; - int value69 = 0; - int value6A = 0; - int value6B = 0; - int value6C = 0; - int value6D = 0; - int value6E = 0; - int value6F = 0; - int value70 = 0; - int value71 = 0; - int value72 = 0; - int value73 = 0; - int value74 = 0; - int value75 = 0; - int value76 = 0; - int value77 = 0; - int value78 = 0; - int value79 = 0; - int value7A = 0; - int value7B = 0; - int value7C = 0; - int value7D = 0; - int value7E = 0; - int value7F = 0; - int value80 = 0; - int value81 = 0; - int value82 = 0; - int value83 = 0; - int value84 = 0; - int value85 = 0; - int value86 = 0; - int value87 = 0; - int value88 = 0; - int value89 = 0; - int value8A = 0; - int value8B = 0; - int value8C = 0; - int value8D = 0; - int value8E = 0; - int value8F = 0; - int value90 = 0; - int value91 = 0; - int value92 = 0; - int value93 = 0; - int value94 = 0; - int value95 = 0; - int value96 = 0; - int value97 = 0; - int value98 = 0; - int value99 = 0; - int value9A = 0; - int value9B = 0; - int value9C = 0; - int value9D = 0; - int value9E = 0; - int value9F = 0; - int valueA0 = 0; - int valueA1 = 0; - int valueA2 = 0; - int valueA3 = 0; - int valueA4 = 0; - int valueA5 = 0; - int valueA6 = 0; - int valueA7 = 0; - int valueA8 = 0; - int valueA9 = 0; - int valueAA = 0; - int valueAB = 0; - int valueAC = 0; - int valueAD = 0; - int valueAE = 0; - int valueAF = 0; - int valueB0 = 0; - int valueB1 = 0; - int valueB2 = 0; - int valueB3 = 0; - int valueB4 = 0; - int valueB5 = 0; - int valueB6 = 0; - int valueB7 = 0; - int valueB8 = 0; - int valueB9 = 0; - int valueBA = 0; - int valueBB = 0; - int valueBC = 0; - int valueBD = 0; - int valueBE = 0; - int valueBF = 0; - int valueC0 = 0; - int valueC1 = 0; - int valueC2 = 0; - int valueC3 = 0; - int valueC4 = 0; - int valueC5 = 0; - int valueC6 = 0; - int valueC7 = 0; - int valueC8 = 0; - int valueC9 = 0; - int valueCA = 0; - int valueCB = 0; - int valueCC = 0; - int valueCD = 0; - int valueCE = 0; - int valueCF = 0; - int valueD0 = 0; - int valueD1 = 0; - int valueD2 = 0; - int valueD3 = 0; - int valueD4 = 0; - int valueD5 = 0; - int valueD6 = 0; - int valueD7 = 0; - int valueD8 = 0; - int valueD9 = 0; - int valueDA = 0; - int valueDB = 0; - int valueDC = 0; - int valueDD = 0; - int valueDE = 0; - int valueDF = 0; - int valueE0 = 0; - int valueE1 = 0; - int valueE2 = 0; - int valueE3 = 0; - int valueE4 = 0; - int valueE5 = 0; - int valueE6 = 0; - int valueE7 = 0; - int valueE8 = 0; - int valueE9 = 0; - int valueEA = 0; - int valueEB = 0; - int valueEC = 0; - int valueED = 0; - int valueEE = 0; - int valueEF = 0; - int valueF0 = 0; - int valueF1 = 0; - int valueF2 = 0; - int valueF3 = 0; - int valueF4 = 0; - int valueF5 = 0; - int valueF6 = 0; - int valueF7 = 0; - int valueF8 = 0; - int valueF9 = 0; - int valueFA = 0; - int valueFB = 0; - int valueFC = 0; - int valueFD = 0; - int valueFE = 0; - int valueFF = 0; - int valueWide = 0; // wide - valueWide++; // wide - } -} - -/**{OpenCL{ -typedef struct This_s{ - int passid; -}This; -int get_pass_id(This *this){ - return this->passid; - } -__kernel void run( - int passid -){ - This thisStruct; - This* this=&thisStruct; - this->passid = passid; - { - int value00 = 0; - int value01 = 0; - int value02 = 0; - int value03 = 0; - int value04 = 0; - int value05 = 0; - int value06 = 0; - int value07 = 0; - int value08 = 0; - int value09 = 0; - int value0A = 0; - int value0B = 0; - int value0C = 0; - int value0D = 0; - int value0E = 0; - int value0F = 0; - int value10 = 0; - int value11 = 0; - int value12 = 0; - int value13 = 0; - int value14 = 0; - int value15 = 0; - int value16 = 0; - int value17 = 0; - int value18 = 0; - int value19 = 0; - int value1A = 0; - int value1B = 0; - int value1C = 0; - int value1D = 0; - int value1E = 0; - int value1F = 0; - int value20 = 0; - int value21 = 0; - int value22 = 0; - int value23 = 0; - int value24 = 0; - int value25 = 0; - int value26 = 0; - int value27 = 0; - int value28 = 0; - int value29 = 0; - int value2A = 0; - int value2B = 0; - int value2C = 0; - int value2D = 0; - int value2E = 0; - int value2F = 0; - int value30 = 0; - int value31 = 0; - int value32 = 0; - int value33 = 0; - int value34 = 0; - int value35 = 0; - int value36 = 0; - int value37 = 0; - int value38 = 0; - int value39 = 0; - int value3A = 0; - int value3B = 0; - int value3C = 0; - int value3D = 0; - int value3E = 0; - int value3F = 0; - int value40 = 0; - int value41 = 0; - int value42 = 0; - int value43 = 0; - int value44 = 0; - int value45 = 0; - int value46 = 0; - int value47 = 0; - int value48 = 0; - int value49 = 0; - int value4A = 0; - int value4B = 0; - int value4C = 0; - int value4D = 0; - int value4E = 0; - int value4F = 0; - int value50 = 0; - int value51 = 0; - int value52 = 0; - int value53 = 0; - int value54 = 0; - int value55 = 0; - int value56 = 0; - int value57 = 0; - int value58 = 0; - int value59 = 0; - int value5A = 0; - int value5B = 0; - int value5C = 0; - int value5D = 0; - int value5E = 0; - int value5F = 0; - int value60 = 0; - int value61 = 0; - int value62 = 0; - int value63 = 0; - int value64 = 0; - int value65 = 0; - int value66 = 0; - int value67 = 0; - int value68 = 0; - int value69 = 0; - int value6A = 0; - int value6B = 0; - int value6C = 0; - int value6D = 0; - int value6E = 0; - int value6F = 0; - int value70 = 0; - int value71 = 0; - int value72 = 0; - int value73 = 0; - int value74 = 0; - int value75 = 0; - int value76 = 0; - int value77 = 0; - int value78 = 0; - int value79 = 0; - int value7A = 0; - int value7B = 0; - int value7C = 0; - int value7D = 0; - int value7E = 0; - int value7F = 0; - int value80 = 0; - int value81 = 0; - int value82 = 0; - int value83 = 0; - int value84 = 0; - int value85 = 0; - int value86 = 0; - int value87 = 0; - int value88 = 0; - int value89 = 0; - int value8A = 0; - int value8B = 0; - int value8C = 0; - int value8D = 0; - int value8E = 0; - int value8F = 0; - int value90 = 0; - int value91 = 0; - int value92 = 0; - int value93 = 0; - int value94 = 0; - int value95 = 0; - int value96 = 0; - int value97 = 0; - int value98 = 0; - int value99 = 0; - int value9A = 0; - int value9B = 0; - int value9C = 0; - int value9D = 0; - int value9E = 0; - int value9F = 0; - int valueA0 = 0; - int valueA1 = 0; - int valueA2 = 0; - int valueA3 = 0; - int valueA4 = 0; - int valueA5 = 0; - int valueA6 = 0; - int valueA7 = 0; - int valueA8 = 0; - int valueA9 = 0; - int valueAA = 0; - int valueAB = 0; - int valueAC = 0; - int valueAD = 0; - int valueAE = 0; - int valueAF = 0; - int valueB0 = 0; - int valueB1 = 0; - int valueB2 = 0; - int valueB3 = 0; - int valueB4 = 0; - int valueB5 = 0; - int valueB6 = 0; - int valueB7 = 0; - int valueB8 = 0; - int valueB9 = 0; - int valueBA = 0; - int valueBB = 0; - int valueBC = 0; - int valueBD = 0; - int valueBE = 0; - int valueBF = 0; - int valueC0 = 0; - int valueC1 = 0; - int valueC2 = 0; - int valueC3 = 0; - int valueC4 = 0; - int valueC5 = 0; - int valueC6 = 0; - int valueC7 = 0; - int valueC8 = 0; - int valueC9 = 0; - int valueCA = 0; - int valueCB = 0; - int valueCC = 0; - int valueCD = 0; - int valueCE = 0; - int valueCF = 0; - int valueD0 = 0; - int valueD1 = 0; - int valueD2 = 0; - int valueD3 = 0; - int valueD4 = 0; - int valueD5 = 0; - int valueD6 = 0; - int valueD7 = 0; - int valueD8 = 0; - int valueD9 = 0; - int valueDA = 0; - int valueDB = 0; - int valueDC = 0; - int valueDD = 0; - int valueDE = 0; - int valueDF = 0; - int valueE0 = 0; - int valueE1 = 0; - int valueE2 = 0; - int valueE3 = 0; - int valueE4 = 0; - int valueE5 = 0; - int valueE6 = 0; - int valueE7 = 0; - int valueE8 = 0; - int valueE9 = 0; - int valueEA = 0; - int valueEB = 0; - int valueEC = 0; - int valueED = 0; - int valueEE = 0; - int valueEF = 0; - int valueF0 = 0; - int valueF1 = 0; - int valueF2 = 0; - int valueF3 = 0; - int valueF4 = 0; - int valueF5 = 0; - int valueF6 = 0; - int valueF7 = 0; - int valueF8 = 0; - int valueF9 = 0; - int valueFA = 0; - int valueFB = 0; - int valueFC = 0; - int valueFD = 0; - int valueFE = 0; - int valueFF = 0; - int valueWide = 0; - valueWide++; - return; - } -} -}OpenCL}**/ diff --git a/test/runtime/.classpath b/test/runtime/.classpath deleted file mode 100644 index 168c15f2..00000000 --- a/test/runtime/.classpath +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/test/runtime/.project b/test/runtime/.project deleted file mode 100644 index 0b3d5824..00000000 --- a/test/runtime/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - test-runtime - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/test/runtime/build.xml b/test/runtime/build.xml deleted file mode 100644 index aab11bb5..00000000 --- a/test/runtime/build.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - - - - - - OS Name: ${os.name} - OS Version: ${os.version} - OS Arch: ${os.arch} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/BufferTransfer.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/BufferTransfer.java deleted file mode 100644 index 847a6957..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/BufferTransfer.java +++ /dev/null @@ -1,240 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.util.Arrays; - -import org.junit.BeforeClass; -import org.junit.Test; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; - -public class BufferTransfer{ - - static OpenCLDevice openCLDevice = null; - - @BeforeClass public static void setUpBeforeClass() throws Exception { - - Device device = Device.best(); - if (device == null || !(device instanceof OpenCLDevice)) { - fail("no opencl device!"); - } - openCLDevice = (OpenCLDevice) device; - } - - public static class InOutKernel extends Kernel{ - - int[] in; - - int[] out; - - @Override public void run() { - int gid = getGlobalId(0); - in[gid] = out[gid]; - - } - - } - - @Test public void inOutOnce() { - - final int SIZE = 1024; - final InOutKernel kernel = new InOutKernel(); - final Range range = openCLDevice.createRange(SIZE); - - kernel.in = new int[SIZE]; - kernel.out = new int[SIZE]; - - Util.fill(kernel.in, new Util.Filler(){ - public void fill(int[] array, int index) { - array[index] = index; - } - }); - kernel.execute(range); - - assertTrue("in == out", Util.same(kernel.in, kernel.out)); - - } - - public static class AddKernel extends Kernel{ - - int[] values; - - int[] result; - - @Override public void run() { - int gid = getGlobalId(0); - result[gid] = result[gid] + values[gid]; - - } - - } - - @Test public void auto() { - - final int SIZE = 1024; - final AddKernel kernel = new AddKernel(); - final Range range = openCLDevice.createRange(SIZE); - - kernel.values = new int[SIZE]; - kernel.result = new int[SIZE]; - Util.zero(kernel.result); - Util.fill(kernel.values, new Util.Filler(){ - public void fill(int[] array, int index) { - array[index] = index; - } - }); - - int[] expectedResult = Arrays.copyOf(kernel.result, kernel.result.length); - - Util.apply(expectedResult, kernel.values, new Util.Operator(){ - - @Override public void apply(int[] lhs, int[] rhs, int index) { - lhs[index] = lhs[index] + rhs[index]; - - } - }); - kernel.execute(range); - - assertTrue("expectedResult == result", Util.same(expectedResult, kernel.result)); - - kernel.execute(range); - - Util.apply(expectedResult, kernel.values, new Util.Operator(){ - - @Override public void apply(int[] lhs, int[] rhs, int index) { - lhs[index] = lhs[index] + rhs[index]; - - } - }); - assertTrue("expectedResult == result", Util.same(expectedResult, kernel.result)); - - Util.zero(kernel.values); - kernel.execute(range); - assertTrue("expectedResult == result", Util.same(expectedResult, kernel.result)); - - } - - @Test public void explicit() { - - final int SIZE = 1024; - final AddKernel kernel = new AddKernel(); - kernel.setExplicit(true); - final Range range = openCLDevice.createRange(SIZE); - - kernel.values = new int[SIZE]; - kernel.result = new int[SIZE]; - Util.zero(kernel.result); - Util.fill(kernel.values, new Util.Filler(){ - public void fill(int[] array, int index) { - array[index] = index; - } - }); - - int[] expectedResult = Arrays.copyOf(kernel.result, kernel.result.length); - - Util.apply(expectedResult, kernel.values, new Util.Operator(){ - - @Override public void apply(int[] lhs, int[] rhs, int index) { - lhs[index] = lhs[index] + rhs[index]; - - } - }); - - kernel.execute(range).get(kernel.result); - - assertTrue("after first explicit add expectedResult == result", Util.same(expectedResult, kernel.result)); - - kernel.execute(range).get(kernel.result); - - Util.apply(expectedResult, kernel.values, new Util.Operator(){ - @Override public void apply(int[] lhs, int[] rhs, int index) { - lhs[index] = lhs[index] + rhs[index]; - - } - }); - assertTrue("after second explicit add expectedResult == result", Util.same(expectedResult, kernel.result)); - - Util.zero(kernel.values); - - kernel.put(kernel.values).execute(range).get(kernel.result); - - assertTrue("after zeroing values and third explici add expectedResult == result", Util.same(expectedResult, kernel.result)); - - Util.zero(kernel.result); - - kernel.put(kernel.result).execute(range).get(kernel.result); - - Util.zero(expectedResult); - - assertTrue("after zeroing values and result and forth explicit add expectedResult == result", - Util.same(expectedResult, kernel.result)); - - } - - private class TestKernel extends Kernel{ - int[] simStep = new int[1]; - - int[] neuronOutputs = new int[3]; - - int[] expected = new int[] { - 3, - 0, - 0, - 0, - 3, - 0, - 0, - 0, - 3, - 0, - 0, - 0, - 3, - 0, - 0, - 0 - }; - - public void step() { - int simSteps = 16; - int[][] log = new int[neuronOutputs.length][simSteps]; - put(neuronOutputs); - for (simStep[0] = 0; simStep[0] < simSteps; simStep[0]++) { - put(simStep).execute(neuronOutputs.length).get(neuronOutputs); - for (int n = 0; n < neuronOutputs.length; n++) - log[n][simStep[0]] = neuronOutputs[n]; - } - System.out.println(getExecutionMode() + (isExplicit() ? ", explicit" : ", auto")); - - for (int n = 0; n < neuronOutputs.length; n++) - System.out.println(Arrays.toString(log[n])); - - assertTrue("log[2] == expected", Util.same(log[2], expected)); - } - - @Override public void run() { - int neuronID = getGlobalId(); - neuronOutputs[neuronID] = (simStep[0] % (neuronID + 2) == 0) ? (neuronID + 1) : 0; - } - } - - @Test public void issue60Explicit() { - - TestKernel kernel = new TestKernel(); - kernel.setExplicit(true); - kernel.step(); - - } - - @Test public void issue60Auto() { - TestKernel kernel = new TestKernel(); - kernel.step(); - - } - -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java deleted file mode 100644 index ca70f1a2..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/CallStaticFromAnonymousKernel.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import static org.junit.Assert.assertTrue; -import org.junit.Test; -import com.amd.aparapi.Kernel; - -class AnotherClass{ - static public int foo(int i) { - return i + 42; - } -}; - -public class CallStaticFromAnonymousKernel{ - - static final int size = 256; - - // This method is a static target in the anonymous - // kernel's containing class - public static int fooBar(int i) { - return i + 20; - } - - @Test public void test() { - final int[] values = new int[size]; - final int[] results = new int[size]; - for (int i = 0; i < size; i++) { - values[i] = i; - results[i] = 0; - } - Kernel kernel = new Kernel(){ - - // Verify codegen for resolving static call from run's callees - public int doodoo(int i) { - return AnotherClass.foo(i); - } - - @Override public void run() { - int gid = getGlobalId(); - // Call a static in the containing class and call a kernel method - // that calls a static in another class - results[gid] = CallStaticFromAnonymousKernel.fooBar(values[gid]) + doodoo(gid); - } - }; - kernel.execute(size); - assertTrue("ran on GPU", kernel.getExecutionMode() == Kernel.EXECUTION_MODE.GPU); - - for (int i = 0; i < size; i++) { - assertTrue("results == fooBar", results[i] == (fooBar(values[i]) + AnotherClass.foo(i))); - } - } - - public static void main(String args[]) { - CallStaticFromAnonymousKernel k = new CallStaticFromAnonymousKernel(); - k.test(); - } -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/ExplicitBoolean.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/ExplicitBoolean.java deleted file mode 100644 index c80b587b..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/ExplicitBoolean.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -import com.amd.aparapi.Kernel; - -public class ExplicitBoolean{ - - class ExplicitBooleanTestKernel extends Kernel{ - int size; // Number of work items. - - int iterations; // Number of times to execute kernel. - - public boolean[] input, output; - - public ExplicitBooleanTestKernel(int _size) { - size = _size; - input = new boolean[size]; - output = new boolean[size]; - setExplicit(true); - put(output); - } - - public void go() { - put(input); - execute(size); - get(output); - } - - @Override public void run() { - int id = getGlobalId(); - output[id] = input[id]; - } - } - - @Test public void test() { - int size = 16; - ExplicitBooleanTestKernel k1 = new ExplicitBooleanTestKernel(size); - ExplicitBooleanTestKernel k2 = new ExplicitBooleanTestKernel(size); - k2.input = k1.output; - - for (int i = 0; i < size; i++) { - k1.input[i] = Math.random() > 0.5; - } - - if (size <= 32) - printArray(k1.input); - - k1.go(); - - if (size <= 32) - printArray(k1.output); - - assertTrue("k1.input == k1.output ", Util.same(k1.output, k1.output)); - - k2.go(); - - if (size <= 32) - printArray(k2.output); - - assertTrue("k1.input == k2.input", Util.same(k1.output, k1.output)); - System.out.println(k1.getExecutionMode()); - } - - private static void printArray(boolean[] a) { - for (int i = 0; i < a.length; i++) { - System.out.print((a[i] ? 1 : 0) + "\t"); - } - System.out.println(); - } - -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue102.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue102.java deleted file mode 100644 index 5009915d..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue102.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import com.amd.aparapi.*; -import static org.junit.Assert.assertTrue; -import org.junit.Test; - - -final class BugDataObject { - int value = 7; - - public int getValue() - { - return value; - } - - public void setValue(int value) - { - this.value = value; - } -} - - -public class Issue102 extends Kernel { - static final int size = 32; - - static BugDataObject [] objects = new BugDataObject[size]; - int[] target = new int[size]; - - @Override - public void run() { - int id = getGlobalId(); - target[id] = objects[id].getValue(); - } - - void validate() { - for (int i = 0; i < size; i++) { - System.out.println(target[i] + " ... " + objects[i].getValue()); - assertTrue("target == objects", target[i] == objects[i].getValue()); - } - } - - @Test public void test() { - execute(size); - validate(); - } - - public static void main(String[] args) { - Issue102 b = new Issue102(); - b.test(); - } - - public Issue102() { - for(int i = 0; i < size; ++i) { - objects[i] = new BugDataObject(); - target[i] = 99; - } - } -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue103.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue103.java deleted file mode 100644 index 3419977f..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue103.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import com.amd.aparapi.*; -import static org.junit.Assert.assertTrue; -import org.junit.Test; - - - -public class Issue103 extends Kernel { - static final int size = 32; - - static int[] source = new int[size]; - static int[] target = new int[size]; - - @Override - public void run() { - int id = getGlobalId(); - target[id] = source[id]; - } - - void validate() { - for (int i = 0; i < size; i++) { - System.out.println(target[i] + " ... " + source[i]); - assertTrue("target == source", target[i] == source[i]); - } - } - - @Test public void test() { - execute(size); - validate(); - } - - public static void main(String[] args) { - Issue103 b = new Issue103(); - b.test(); - } - - public Issue103() { - for(int i = 0; i < size; ++i) { - source[i] = 7; - target[i] = 99; - } - } -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue68.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue68.java deleted file mode 100644 index f2170eb1..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue68.java +++ /dev/null @@ -1,225 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import com.amd.aparapi.Kernel; - -abstract class ArrayAccess{ - protected ArrayAccess(int offset, int length) { - this.offset = offset; - this.length = length; - } - - public abstract int[] getIntData(); - - public int getOffset() { - return offset; - } - - public int getLength() { - return length; - } - - private final int offset; - - private final int length; -} - -class IntMemoryArrayAccess extends ArrayAccess{ - public IntMemoryArrayAccess(int[] data, int offset, int length) { - super(offset, length); - this.data = data; - } - - @Override public int[] getIntData() { - return data; - } - - private final int[] data; -} - -public class Issue68{ - // Runnable for calculating the column transforms in parallel - private class ColumnTableFNTRunnable extends Kernel{ - public ColumnTableFNTRunnable(int length, boolean isInverse, ArrayAccess arrayAccess, int[] wTable, int[] permutationTable, - int modulus) { - stride = arrayAccess.getLength() / length; - this.length = length; // Transform length - this.isInverse = isInverse; - data = arrayAccess.getIntData(); - offset = arrayAccess.getOffset(); - this.wTable = wTable; - this.permutationTable = permutationTable; - permutationTableLength = (permutationTable == null ? 0 : permutationTable.length); - setModulus(modulus); - } - - @Override public void run() { - if (isInverse) { - inverseColumnTableFNT(); - } else { - columnTableFNT(); - } - } - - private void columnTableFNT() { - int nn, istep, mmax, r; - - final int offset = this.offset + getGlobalId(); - nn = length; - - if (nn < 2) { - return; - } - - r = 1; - mmax = nn >> 1; - while (mmax > 0) { - istep = mmax << 1; - - // Optimize first step when wr = 1 - - for (int i = offset; i < (offset + (nn * stride)); i += istep * stride) { - final int j = i + (mmax * stride); - final int a = data[i]; - final int b = data[j]; - data[i] = modAdd(a, b); - data[j] = modSubtract(a, b); - } - - int t = r; - - for (int m = 1; m < mmax; m++) { - for (int i = offset + (m * stride); i < (offset + (nn * stride)); i += istep * stride) { - final int j = i + (mmax * stride); - final int a = data[i]; - final int b = data[j]; - data[i] = modAdd(a, b); - data[j] = modMultiply(wTable[t], modSubtract(a, b)); - } - t += r; - } - r <<= 1; - mmax >>= 1; - } - - //if (permutationTable != null) - // { - columnScramble(offset); - // } - } - - private void inverseColumnTableFNT() { - int nn, istep, mmax, r; - - final int offset = this.offset + getGlobalId(); - nn = length; - - if (nn < 2) { - return; - } - - // if (permutationTable != null) - // { - columnScramble(offset); - // } - - r = nn; - mmax = 1; - istep = 0; - while (nn > mmax) { - istep = mmax << 1; - r >>= 1; - - // Optimize first step when w = 1 - - for (int i = offset; i < (offset + (nn * stride)); i += istep * stride) { - final int j = i + (mmax * stride); - final int wTemp = data[j]; - data[j] = modSubtract(data[i], wTemp); - data[i] = modAdd(data[i], wTemp); - } - - int t = r; - - for (int m = 1; m < mmax; m++) { - for (int i = offset + (m * stride); i < (offset + (nn * stride)); i += istep * stride) { - final int j = i + (mmax * stride); - final int wTemp = modMultiply(wTable[t], data[j]); - data[j] = modSubtract(data[i], wTemp); - data[i] = modAdd(data[i], wTemp); - } - t += r; - } - mmax = istep; - } - } - - private void columnScramble(int offset) { - for (int k = 0; k < permutationTableLength; k += 2) { - final int i = offset + (permutationTable[k] * stride), j = offset + (permutationTable[k + 1] * stride); - final int tmp = data[i]; - data[i] = data[j]; - data[j] = tmp; - } - } - - public final int modMultiply(int a, int b) { - final int r1 = (a * b) - ((int) (inverseModulus * a * b) * modulus), r2 = r1 - modulus; - - return (r2 < 0 ? r1 : r2); - } - - private int modAdd(int a, int b) { - final int r1 = a + b, r2 = r1 - modulus; - - return (r2 < 0 ? r1 : r2); - } - - private int modSubtract(int a, int b) { - final int r1 = a - b, r2 = r1 + modulus; - - return (r1 < 0 ? r2 : r1); - } - - private void setModulus(int modulus) { - inverseModulus = 1.0f / (modulus + 0.5f); // Round down - this.modulus = modulus; - } - - private final int stride; - - private final int length; - - private final boolean isInverse; - - private final int[] data; - - private final int offset; - - @Constant private final int[] wTable; - - @Constant private final int[] permutationTable; - - private final int permutationTableLength; - - private int modulus; - - private float inverseModulus; - } - - public static void main(String[] args) { - final int SQRT_LENGTH = 1024; - final int LENGTH = SQRT_LENGTH * SQRT_LENGTH; - final ArrayAccess arrayAccess = new IntMemoryArrayAccess(new int[LENGTH], 0, LENGTH); - new Issue68().transformColumns(SQRT_LENGTH, SQRT_LENGTH, false, arrayAccess, new int[SQRT_LENGTH], null); - } - - private void transformColumns(final int length, final int count, final boolean isInverse, final ArrayAccess arrayAccess, - final int[] wTable, final int[] permutationTable) { - final Kernel kernel = new ColumnTableFNTRunnable(length, isInverse, arrayAccess, wTable, permutationTable, getModulus()); - kernel.execute(count); - } - - private int getModulus() { - return 2113929217; - } -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue69.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue69.java deleted file mode 100644 index 770359a1..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/Issue69.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -public class Issue69{ - - public static void main(String[] args) { - final int globalArray[] = new int[512]; - Kernel kernel = new Kernel(){ - @Override public void run() { - globalArray[getGlobalId()] = getGlobalId(); - } - }; - for (int loop = 0; loop < 100; loop++) { - - System.out.printf("%3d free = %10d\n", loop, Runtime.getRuntime().freeMemory()); - kernel.execute(Range.create(512, 64), 1); - for (int i = 0; i < globalArray.length; ++i) { - if (globalArray[i] != i) - System.err.println("Wrong!"); - } - } - for (int loop = 0; loop < 100; loop++) { - - System.out.printf("%3d free = %10d\n", loop, Runtime.getRuntime().freeMemory()); - kernel.execute(Range.create(512, 64), 2); - for (int i = 0; i < globalArray.length; ++i) { - if (globalArray[i] != i) - System.err.println("Wrong!"); - } - } - } - -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/LoadCL.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/LoadCL.java deleted file mode 100644 index 28b2a73b..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/LoadCL.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import com.amd.aparapi.Range; -import com.amd.aparapi.device.Device; -import com.amd.aparapi.device.OpenCLDevice; -import com.amd.aparapi.opencl.OpenCL; -import com.amd.aparapi.opencl.OpenCL.Resource; -import com.amd.aparapi.opencl.OpenCL.Source; - -import static org.junit.Assert.assertTrue; -import org.junit.Test; - -public class LoadCL{ - - @Resource("com/amd/aparapi/test/runtime/squarer.cl") interface Squarer extends OpenCL{ - public Squarer square(// - Range _range,// - @GlobalReadWrite("in") float[] in,// - @GlobalReadWrite("out") float[] out); - } - - @Test public void test() { - final int size = 32; - final float[] in = new float[size]; - - for (int i = 0; i < size; i++) { - in[i] = i; - } - - final float[] squares = new float[size]; - final float[] quads = new float[size]; - final Range range = Range.create(size); - - final Device device = Device.best(); - - if (device instanceof OpenCLDevice) { - final OpenCLDevice openclDevice = (OpenCLDevice) device; - - final Squarer squarer = openclDevice.bind(Squarer.class); - squarer.square(range, in, squares); - - for (int i = 0; i < size; i++) { - assertTrue("in["+i+"] * in["+i+"] = in["+i+"]^2",in[i]*in[i] == squares[i]); - } - - squarer.square(range, squares, quads); - - for (int i = 0; i < size; i++) { - assertTrue("in["+i+"]^2 * in["+i+"]^2 = in["+i+"]^4", in[i]*in[i]*in[i]*in[i] == quads[i]); - } - } - } -} - diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/RangeSize.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/RangeSize.java deleted file mode 100644 index 89808ba7..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/RangeSize.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import com.amd.aparapi.Range; - -import static org.junit.Assert.*; - -import org.junit.Test; - -public class RangeSize{ - - @Test public void test384x384() { - Range range = Range.create2D(384, 384); - System.out.println("local[0] " + range.getLocalSize(0)); - System.out.println("local[1] " + range.getLocalSize(1)); - System.out.println("workGroupSize " + range.getWorkGroupSize()); - assertTrue("Range > max work size", range.getLocalSize(0) * range.getLocalSize(1) <= range.getWorkGroupSize()); - } - - @Test public void test384x320() { - Range range = Range.create2D(384, 320); - System.out.println("local[0] " + range.getLocalSize(0)); - System.out.println("local[1] " + range.getLocalSize(1)); - System.out.println("workGroupSize " + range.getWorkGroupSize()); - assertTrue("Range > max work size", range.getLocalSize(0) * range.getLocalSize(1) <= range.getWorkGroupSize()); - } - -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/Test12x4_4x2.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/Test12x4_4x2.java deleted file mode 100644 index 51cee436..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/Test12x4_4x2.java +++ /dev/null @@ -1,499 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import org.junit.Test; - -import com.amd.aparapi.Kernel; -import com.amd.aparapi.Range; - -public class Test12x4_4x2{ - @Test public void test() { - // globalThreadId, threadId, globalX, globalY, localX, localY - final int[][] test = new int[][] { - { - 0, //globalThreadId - 0,//threadId - 0,//globalX - 0,//globalY - 0,//localX - 0 - //localY - }, - { - 1,//globalThreadId - 1,//threadId - 1,//globalX - 0,//globalY - 1,//localX - 0 - //localY - }, - { - 2,//globalThreadId - 2,//threadId - 2,//globalX - 0,//globalY - 2,//localX - 0 - //localY - }, - { - 3,//globalThreadId - 3,//threadId - 3,//globalX - 0,//globalY - 3,//localX - 0 - //localY - }, - { - 4,//globalThreadId - 4,//threadId - 0,//globalX - 1,//globalY - 0,//localX - 1 - //localY - }, - { - 5,//globalThreadId - 5,//threadId - 1,//globalX - 1,//globalY - 1,//localX - 1 - //localY - }, - { - 6,//globalThreadId - 6,//threadId - 2,//globalX - 1,//globalY - 2,//localX - 1 - //localY - }, - { - 7,//globalThreadId - 7,//threadId - 3,//globalX - 1,//globalY - 3,//localX - 1 - //localY - }, - { - 8,//globalThreadId - 0,//threadId - 4,//globalX - 0,//globalY - 0,//localX - 0 - //localY - }, - { - 9,//globalThreadId - 1,//threadId - 5,//globalX - 0,//globalY - 1,//localX - 0 - //localY - }, - { - 10,//globalThreadId - 2,//threadId - 6,//globalX - 0,//globalY - 2,//localX - 0 - //localY - }, - { - 11,//globalThreadId - 3,//threadId - 7,//globalX - 0,//globalY - 3,//localX - 0 - //localY - }, - { - 12,//globalThreadId - 4,//threadId - 4,//globalX - 1,//globalY - 0,//localX - 1 - //localY - }, - { - 13,//globalThreadId - 5,//threadId - 5,//globalX - 1,//globalY - 1,//localX - 1 - //localY - }, - { - 14,//globalThreadId - 6,//threadId - 6,//globalX - 1,//globalY - 2,//localX - 1 - //localY - }, - { - 15,//globalThreadId - 7,//threadId - 7,//globalX - 1,//globalY - 3,//localX - 1 - //localY - }, - { - 16,//globalThreadId - 0,//threadId - 8,//globalX - 0,//globalY - 0,//localX - 0 - //localY - }, - { - 17,//globalThreadId - 1,//threadId - 9,//globalX - 0,//globalY - 1,//localX - 0 - //localY - }, - { - 18,//globalThreadId - 2,//threadId - 10,//globalX - 0,//globalY - 2,//localX - 0 - //localY - }, - { - 19,//globalThreadId - 3,//threadId - 11,//globalX - 0,//globalY - 3,//localX - 0 - //localY - }, - - { - 20,//globalThreadId - 4,//threadId - 8,//globalX - 1,//globalY - 0,//localX - 1 - //localY - }, - { - 21,//globalThreadId - 5,//threadId - 9,//globalX - 1,//globalY - 1,//localX - 1 - //localY - }, - { - 22,//globalThreadId - 6,//threadId - 10,//globalX - 1, - 2,//localX - 1 - //localY - }, - { - 23,//globalThreadId - 7,//threadId - 11,//globalX - 1,//globalY - 3,//localX - 1 - //localY - }, - { - 24,//globalThreadId - 0,//threadId - 0,//globalX - 2,//globalY - 0,//localX - 0 - //localY - }, - { - 25,//globalThreadId - 1,//threadId - 1,//globalX - 2,//globalY - 1,//localX - 0 - //localY - }, - { - 26,//globalThreadId - 2,//threadId - 2,//globalX - 2,//globalY - 2,//localX - 0 - //localY - }, - { - 27,//globalThreadId - 3,//threadId - 3,//globalX - 2,//globalY - 3,//localX - 0 - //localY - }, - { - 28,//globalThreadId - 4,//threadId - 0,//globalX - 3,//globalY - 0,//localX - 1 - //localY - }, - { - 29,//globalThreadId - 5,//threadId - 1,//globalX - 3,//globalY - 1,//localX - 1 - //localY - }, - { - 30,//globalThreadId - 6,//threadId - 2,//globalX - 3,//globalY - 2,//localX - 1 - //localY - }, - { - 31,//globalThreadId - 7,//threadId - 3,//globalX - 3,//globalY - 3,//localX - 1 - //localY - }, - { - 32,//globalThreadId - 0,//threadId - 4,//globalX - 2,//globalY - 0,//localX - 0 - //localY - }, - { - 33,//globalThreadId - 1,//threadId - 5,//globalX - 2,//globalY - 1,//localX - 0 - //localY - }, - { - 34,//globalThreadId - 2,//threadId - 6,//globalX - 2,//globalY - 2,//localX - 0 - //localY - }, - { - 35,//globalThreadId - 3,//threadId - 7,//globalX - 2,//globalY - 3,//localX - 0 - //localY - }, - { - 36,//globalThreadId - 4,//threadId - 4,//globalX - 3,//globalY - 0,//localX - 1 - //localY - }, - { - 37,//globalThreadId - 5,//threadId - 5,//globalX - 3,//globalY - 1,//localX - 1 - //localY - }, - { - 38,//globalThreadId - 6,//threadId - 6,//globalX - 3,//globalY - 2,//localX - 1 - //localY - }, - { - 39,//globalThreadId - 7,//threadId - 7,//globalX - 3,//globalY - 3,//localX - 1 - //localY - }, - { - 40,//globalThreadId - 0,//threadId - 8,//globalX - 2,//globalY - 0,//localX - 0 - //localY - }, - { - 41,//globalThreadId - 1,//threadId - 9,//globalX - 2,//globalY - 1,//localX - 0 - //localY - }, - { - 42,//globalThreadId - 2,//threadId - 10,//globalX - 2,//globalY - 2,//localX - 0 - //localY - }, - { - 43,//globalThreadId - 3,//threadId - 11,//globalX - 2,//globalY - 3,//localX - 0 - //localY - }, - - { - 44,//globalThreadId - 4,//threadId - 8,//globalX - 3,//globalY - 0,//localX - 1 - //localY - }, - { - 45,//globalThreadId - 5,//threadId - 9,//globalX - 3,//globalY - 1,//localX - 1 - //localY - }, - { - 46,//globalThreadId - 6,//threadId - 10,//globalX - 3,//globalY - 2,//localX - 1 - //localY - }, - { - 47,//globalThreadId - 7,//threadId - 11,//globalX - 3,//globalY - 3,//localX - 1 - //localY - }, - }; - Kernel kernel = new Kernel(){ - - @Override public void run() { - int x = getGlobalId(0); - int y = getGlobalId(1); - int lx = getLocalId(0); - int ly = getLocalId(1); - int w = getGlobalSize(0); - int h = getGlobalSize(1); - int globalThreadId = getGlobalId(1) * getGlobalSize(0) + getGlobalId(0); - int threadId = getLocalId(1) * getLocalSize(0) + getLocalId(0); - synchronized (test) { - boolean show = false; - if (globalThreadId != test[globalThreadId][0]) { - System.out.println("bad globalThreadId"); - show = true; - } - if (threadId != test[globalThreadId][1]) { - System.out.println("bad threadId"); - show = true; - } - if (x != test[globalThreadId][2]) { - System.out.println("bad globalx"); - show = true; - } - if (y != test[globalThreadId][3]) { - System.out.println("bad globaly"); - show = true; - } - if (lx != test[globalThreadId][4]) { - System.out.println("bad localx"); - show = true; - } - if (ly != test[globalThreadId][5]) { - System.out.println("bad localy"); - show = true; - } - if (show) { - System.out.println("derived =>" + globalThreadId + " " + threadId + " " + x + "," + y + " " + lx + "," + ly + " " - + w + "," + h); - System.out.println("data =>" + test[globalThreadId][0] + " " + test[globalThreadId][1] + " " - + test[globalThreadId][2] + "," + test[globalThreadId][3] + " " + test[globalThreadId][4] + "," - + test[globalThreadId][5] + " " + w + "," + h); - } - } - } - - }; - kernel.setExecutionMode(Kernel.EXECUTION_MODE.JTP); - kernel.execute(Range.create2D(12, 4, 4, 2)); - - } -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/UseStaticArray.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/UseStaticArray.java deleted file mode 100644 index 3a24b2d2..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/UseStaticArray.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import static org.junit.Assert.assertTrue; -import org.junit.Test; -import com.amd.aparapi.Kernel; - -public class UseStaticArray extends Kernel{ - - static final int size = 256; - - static final int[] values = new int[size]; - - static final int[] results = new int[size]; - - @Override public void run() { - int gid = getGlobalId(); - results[gid] = values[gid]; - } - - @Test public void test() { - - for (int i = 0; i < size; i++) { - values[i] = i; - results[i] = 0; - } - - execute(size); - - assertTrue("ran on GPU", getExecutionMode() == Kernel.EXECUTION_MODE.GPU); - - for (int i = 0; i < size; i++) { - assertTrue("results == fooBar", results[i] == values[i]); - } - } - - public static void main(String args[]) { - UseStaticArray k = new UseStaticArray(); - k.test(); - } -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/Util.java b/test/runtime/src/java/com/amd/aparapi/test/runtime/Util.java deleted file mode 100644 index e2a6342b..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/Util.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.amd.aparapi.test.runtime; - -import java.util.Arrays; - -public class Util{ - interface Filler{ - void fill(int[] array, int index); - } - - interface Comparer{ - boolean same(int[] lhs, int[] rhs, int index); - } - - interface Operator{ - void apply(int[] lhs, int[] rhs, int index); - } - - static void fill(int[] array, Filler _filler) { - for (int i = 0; i < array.length; i++) { - _filler.fill(array, i); - } - } - - static boolean same(int[] lhs, int[] rhs, Comparer _comparer) { - boolean same = lhs != null && rhs != null && lhs.length == rhs.length; - for (int i = 0; same && i < lhs.length; i++) { - same = _comparer.same(lhs, rhs, i); - } - return (same); - } - - static void zero(int[] array) { - Arrays.fill(array, 0); - } - - static boolean same(int[] lhs, int[] rhs) { - return (same(lhs, rhs, new Comparer(){ - - @Override public boolean same(int[] lhs, int[] rhs, int index) { - - return lhs[index] == rhs[index]; - } - })); - } - - static boolean same(boolean[] lhs, boolean[] rhs) { - boolean same = lhs != null && rhs != null && lhs.length == rhs.length; - for (int i = 0; same && i < lhs.length; i++) { - same = lhs[i] == rhs[i]; - } - return (same); - } - - static void apply(int[] lhs, int[] rhs, Operator _operator) { - for (int i = 0; i < lhs.length; i++) { - _operator.apply(lhs, rhs, i); - } - } - -} diff --git a/test/runtime/src/java/com/amd/aparapi/test/runtime/squarer.cl b/test/runtime/src/java/com/amd/aparapi/test/runtime/squarer.cl deleted file mode 100644 index f08e8ff7..00000000 --- a/test/runtime/src/java/com/amd/aparapi/test/runtime/squarer.cl +++ /dev/null @@ -1,6 +0,0 @@ - -__kernel void square( __global float *in, __global float *out){ - const size_t id = get_global_id(0); - out[id] = in[id]*in[id]; -} - diff --git a/wiki-collateral/ProfilingKernelsFormEclipseProject.zip b/wiki-collateral/ProfilingKernelsFormEclipseProject.zip deleted file mode 100644 index 28566548..00000000 Binary files a/wiki-collateral/ProfilingKernelsFormEclipseProject.zip and /dev/null differ