Re: [viff-devel] SMCL compiler status

2008-07-22 Thread Janus Dam Nielsen



Hi again,

While reading the progress repot I also looked at the code of the
compiler to get a feeling for what it can and cannot do.

Please correct me if I'm wrong, but it seems to go through a number of
standard phases not related to cryptography. Then there are these
three phases:

Yes there is a bunch of standard phases.


* Checking of annotations for open() calls -- I think this is part of
  the analysis in DefiniteAssignment.java.
The checking is done in AnnotationAnalysis.java, which is part of the  
DefiniteAssignment phase.
The code in AnnotationAnalysis.java is currently commented out, it  
needs to be upgraded to changes in the analysis framework used.



* Hoistability check which looks for I/O or assignments to public
  variables in the branches of if-statements.

Yes


* Conditional expansion where if-statements are turned into
  conditional assignments. Loops are also detected in the branches.


Yes



I found no support for

* Making things run in parallel (the word parallel does not occur at
  all in the source code).
There is no concept of parallelism in SMCL programs. The fact that  
the computation is distributed is abstracted away.



* Bounds checking when the protocol needs inputs to be smaller than
  the field size (needed in comparisons and new Paillier two-player
  runtime).
I haven't been aware of this being an issue. We need to handle this  
somehow.



* Counting multiplications and other stuff for preprocessing.
NYI. The multiplication optimization I implemented last week haven't  
been committet yet. It needs more integration with the rest of the  
compiler.


--
Janus

___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk


[viff-devel] SMCL compiler status

2008-07-21 Thread Martin Geisler
Hi again,

While reading the progress repot I also looked at the code of the
compiler to get a feeling for what it can and cannot do.

Please correct me if I'm wrong, but it seems to go through a number of
standard phases not related to cryptography. Then there are these
three phases:

* Checking of annotations for open() calls -- I think this is part of
  the analysis in DefiniteAssignment.java.

* Hoistability check which looks for I/O or assignments to public
  variables in the branches of if-statements.

* Conditional expansion where if-statements are turned into
  conditional assignments. Loops are also detected in the branches.

I found no support for

* Making things run in parallel (the word parallel does not occur at
  all in the source code).

* Bounds checking when the protocol needs inputs to be smaller than
  the field size (needed in comparisons and new Paillier two-player
  runtime).

* Counting multiplications and other stuff for preprocessing.

I could easily have overlooked things -- it's not easy to get an
overview of 14,261 lines of Java code :-)

Is this status summary true? I'm posting it so that we have something
to discuss from when talking about what we want to do in the future.

-- 
Martin Geisler
___
viff-devel mailing list (http://viff.dk/)
viff-devel@viff.dk
http://lists.viff.dk/listinfo.cgi/viff-devel-viff.dk