Skip to Content.
Sympa Menu

svadev - Re: [svadev] dsa and transformed function calls

svadev AT lists.siebelschool.illinois.edu

Subject: Svadev mailing list

List archive

Re: [svadev] dsa and transformed function calls


Chronological Thread 
  • From: John Criswell <criswell AT illinois.edu>
  • To: Matthew Wala <wala1 AT illinois.edu>
  • Cc: svadev AT cs.uiuc.edu
  • Subject: Re: [svadev] dsa and transformed function calls
  • Date: Wed, 13 Apr 2011 11:06:10 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/svadev>
  • List-id: <svadev.cs.uiuc.edu>
  • Organization: University of Illinois

On 4/13/11 1:08 AM, Matthew Wala wrote:
Hi everyone:
I've been trying to move code that uses DSA from the StringTransform
module into the CompleteChecks pass (I discussed doing this with John
on Thursday). The StringTransform module currently uses DSA to
determine the completeness of the string arguments before passing them
into transformed function calls. When DSA says nodes are complete when
computed in StringTransform, after the string function calls are
transformed I try to compute the same information in CompleteChecks
and get that the nodes are marked external. Is this because DSA treats
the transformed functions as external functions? I'm not sure, but if
it is, how do I fix this?

Yes, it is most likely the case that DSA considers the pool_str* functions as external functions. You need to modify lib/DSA/StdLib.cpp so that it recognizes them as "intrinsic" functions. For now, just implement the code in CompleteChecks and then tackle the external problem in DSA.

(On a side note: To get what I wanted to do above, I had to reorder
the execution of StringTransform so that it comes before
CompleteChecks. Would that break anything?)

No. In fact, this is as it should be in the new design: all of the SAFECode transforms run first, then CompleteChecks and APA run to mark checks complete and to fill in pool handles.

So, to step up a level, you can divide the work into 4 steps:

1) Implement the CStdLib run-time checks. This by itself should make the checks work without APA.
2) Modify APA to fill in the pools in the run-time checks. Now your new checks work with APA.
3) Modify CompleteChecks to modify the completeness flag as appropriate.
4) Modify DSA to recognize the new run-time check.
5) Repeat steps 1-4 for each batch of run-time checks that you implement.

Each step can be committed to SVN separately to avoid large complicated changes.

-- John T.

Matt
_______________________________________________
svadev mailing list
svadev AT cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/svadev





Archive powered by MHonArc 2.6.16.

Top of Page