Home My Page Projects Code Snippets Project Openings 3D graphics for Standard ML
Summary Activity SCM

SCM Repository

[sml3d] Log of /trunk/sml3d/src/particles/compiler
ViewVC logotype

Log of /trunk/sml3d/src/particles/compiler

View Directory Listing Directory Listing


Sticky Revision:

Revision 918 - Directory Listing
Modified Tue Jun 29 04:24:39 2010 UTC (9 years, 3 months ago) by pavelk
Fixed a few bugs. Also got the prelims ready for different rendering modes.

Revision 917 - Directory Listing
Modified Mon Jun 28 14:11:14 2010 UTC (9 years, 3 months ago) by jhr
  Working on OpenCL generation

Revision 916 - Directory Listing
Modified Mon Jun 28 13:32:40 2010 UTC (9 years, 3 months ago) by jhr
  Adding opencl-gen.sml

Revision 915 - Directory Listing
Modified Tue Jun 22 22:13:22 2010 UTC (9 years, 4 months ago) by pavelk
Change the isDead state variable to a TTL. This way we can encode a lot more information into it. I haven't actually tested whether or not it works (just that it compiles)...


Revision 911 - Directory Listing
Modified Tue Jun 22 13:33:43 2010 UTC (9 years, 4 months ago) by jhr
  Added props field to block representation

Revision 907 - Directory Listing
Modified Sat Jun 5 18:51:46 2010 UTC (9 years, 4 months ago) by pavelk
CPU implementation is working, although it's a bit slower than I'd like...

Revision 906 - Directory Listing
Modified Wed Jun 2 21:13:39 2010 UTC (9 years, 4 months ago) by pavelk
Switched program representation to not be a list of blocks. Rather, we reference just one block and use the tree representation when doing our analysis. Hence we now have a much more robust system for error checking, etc. Hopefully this fixes the problem of having inconsistencies between our blocks.

Revision 905 - Directory Listing
Modified Sun May 30 20:35:18 2010 UTC (9 years, 4 months ago) by pavelk
Working on CPU interpreter for particle system... weird bug.

Revision 903 - Directory Listing
Modified Fri May 28 21:16:39 2010 UTC (9 years, 4 months ago) by pavelk
Fixed a few issues with setting global variables for our CPU interpreter.

Revision 902 - Directory Listing
Modified Fri May 28 19:24:05 2010 UTC (9 years, 4 months ago) by pavelk
Ugh, for now figure out which variables are which based on a naming convention. There's probably (read: definitely) a better way to do this by tagging each RETURN statement with the state variables that it returns.

Revision 901 - Directory Listing
Modified Fri May 28 19:15:30 2010 UTC (9 years, 4 months ago) by pavelk
Fix the deal with having the proper full list of state variables sent as block parameters.

Revision 900 - Directory Listing
Modified Fri May 28 19:02:43 2010 UTC (9 years, 4 months ago) by pavelk
More work on CPU interpreter for psys... few kinks to work out with global variables. Also, added secondary position state variable in case we want to do more complicated things...

Revision 899 - Directory Listing
Modified Fri May 28 07:01:21 2010 UTC (9 years, 4 months ago) by pavelk
CPU interpreter, WIP

Revision 877 - Directory Listing
Modified Thu May 6 20:24:53 2010 UTC (9 years, 5 months ago) by pavelk
Add a check to make sure that the referenced blocks are the same as the blocks in the list. Also, fix the block references after optimizing our program to adhere to the check. This will be useful when we analyze the program for code generation.

Revision 876 - Directory Listing
Modified Thu May 6 18:46:55 2010 UTC (9 years, 5 months ago) by pavelk
Simplified optimizeIR function.

Revision 875 - Directory Listing
Modified Thu May 6 18:26:37 2010 UTC (9 years, 5 months ago) by pavelk
Rearranged some of the compiler optimizations.

Revision 874 - Directory Listing
Modified Thu May 6 18:08:36 2010 UTC (9 years, 5 months ago) by pavelk
Added a new property to blocks: reference count. This new property is used in an optimization where we remove unused blocks from the program, and inline blocks that only have one reference count to reduce the amount of branching that we need to do.

Revision 873 - Directory Listing
Modified Wed May 5 20:18:00 2010 UTC (9 years, 5 months ago) by pavelk
Added a few primitives to handle a bit more lower level vector manipulation in order to expose a few more optimizations that we could perform in preparation for generating code for OpenCL. Most notably, we don't want to be doing things like calculating the dot product of basis vectors.

Also, added a new module for specialized optimizations on primitives which were made possible with the aforementioned newly added vector primitives.



Revision 871 - Directory Listing
Modified Fri Apr 30 21:17:38 2010 UTC (9 years, 5 months ago) by pavelk
Got UVE working.

Revision 870 - Directory Listing
Modified Fri Apr 30 17:21:32 2010 UTC (9 years, 5 months ago) by pavelk
Fix some formatting in the checker. I don't know why it's so hard for me to standardize my editors... Also, repurpose DISCARD to mean killing a particle so that we can possibly make some smarter optimizations. We can track non-state changes by seeing whether or not the particles change between the invocation of a block and leaving it.

Revision 869 - Directory Listing
Modified Fri Apr 30 16:42:34 2010 UTC (9 years, 5 months ago) by pavelk
Broke out the different optimizations into their own separate modules. The Optimizer now has more control over the order in which the optimizations are run, and the number of times each optimization is run.

Revision 868 - Directory Listing
Modified Thu Apr 29 22:39:32 2010 UTC (9 years, 5 months ago) by pavelk
Fix some formatting and make the optimizer take a whole program instead of a block list as an argument. The next step is to separate each of the optimizations into their own modules.

Revision 867 - Directory Listing
Modified Thu Apr 29 21:06:21 2010 UTC (9 years, 5 months ago) by pavelk
Added a newline to our program output so that it looks a lot neater... Also, there was a bug with the way we were handling predicate combinators. We need to save off the continuation, and then handle the then/else statements separately, and finally come together in the end. This way we can prevent code from blowing up unnecessarily.

Revision 866 - Directory Listing
Modified Thu Apr 29 20:16:27 2010 UTC (9 years, 5 months ago) by pavelk
IR translation now returns a program datatype, which has the emitter block separated from the physics block, and also keeps track of the rendering operation requested. Also, added property fields for variables and blocks in order to track for UVE.

Revision 864 - Directory Listing
Modified Wed Apr 28 17:21:18 2010 UTC (9 years, 5 months ago) by pavelk
Updated work on UVE. It now works the way I intended it to, although I think I may need to revisit my intentions.

Revision 863 - Directory Listing
Modified Tue Apr 27 23:09:18 2010 UTC (9 years, 5 months ago) by pavelk
UVE: work in progress...

Revision 862 - Directory Listing
Modified Tue Apr 27 01:27:39 2010 UTC (9 years, 5 months ago) by pavelk
Changed optimizations to run until they leave the program unchanged. Fleshed out UVE only to realize that I did it wrong, needs to be rethought. Fleshed out constant folding code, works pretty well.

Revision 859 - Directory Listing
Modified Sat Apr 24 00:34:50 2010 UTC (9 years, 6 months ago) by pavelk
Started work on useless variable elimination.

Revision 770 - Directory Listing
Modified Mon Feb 22 00:17:15 2010 UTC (9 years, 8 months ago) by pavelk
Restructured some of the particles code to better fit the idea that we have for how it's supposed to work. Also, I moved the runtime code for the old psys into the new runtime module. Our example doesn't work properly anymore, since the old particle action system doesn't have a mechanism for specifying branches, so the particles never die.

Revision 769 - Directory Listing
Modified Mon Feb 15 22:52:36 2010 UTC (9 years, 8 months ago) by pavelk
Changed the way we define actions to be a list of combinators. This way we have support for if-then-else statements at a higher level and rendering operations (should we need them).

Revision 758 - Directory Listing
Modified Tue Feb 9 04:46:06 2010 UTC (9 years, 8 months ago) by pavelk
Optimized translation of SINK to avoid a branch. Changed reference counting in optimizer to go from top down rather than from the bottom up.

Revision 750 - Directory Listing
Modified Tue Feb 2 16:12:23 2010 UTC (9 years, 8 months ago) by jhr
  Added some comments

Revision 748 - Directory Listing
Modified Tue Feb 2 06:08:36 2010 UTC (9 years, 8 months ago) by pavelk
Whoops, forgot the optimization module.

Revision 747 - Directory Listing
Modified Tue Feb 2 06:07:28 2010 UTC (9 years, 8 months ago) by pavelk
Implemented some simple optimizations: removing unused variables and constant folding. Also, realized that there's no need for the CONST stmt, since variables are either constants by construction or they get optimized into such.

Revision 746 - Directory Listing
Added Mon Feb 1 04:51:45 2010 UTC (9 years, 8 months ago) by pavelk
Moved syntax, type, and definitions checker into its own module, and they work over the whole program, not when the statements get created.

Sort log by:

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0