[Soot-list] How to add a Transform to the jb phase?
Mario Mendez
mario at cs.unm.edu
Sat Dec 8 16:12:31 EST 2007
I though about that, but then we have to run in Whole Program mode,
which is waaaayyyyy slower. If anyone can suggest an alternative,
without entering in Whole mode, I will appreciate it!
Thanks!!!
Eric Bodden wrote:
> Hmm, ok I just found out that the phases in "jb" are hardcoded. I have
> no idea why that is. (Anybody?)
>
> However, from the code of PackManager it seems that you should be able
> to make modifications in any of the following packs:
>
> cg, wjtp, wjop, wjap
>
> Those packs should run after "jb" but before Shimple creation. The
> only problem with that is that all those four packs are ScenePacks.
> Hence, you need a SceneTransformer, not a BodyTransformer. That's not
> really problematic, though. It only means that you need to call your
> BodyTransformer from the SceneTransformer manually, for the body of
> each concrete method of each application class.
>
> Hope that helps,
> Eric
>
>
> On 08/12/2007, Mario Mendez <mario at cs.unm.edu> wrote:
>> No, that's the puzzling thing to me. If you add a Transform to the jb in
>> that way, it will not be called. Just in case, I explicitly invoked:
>> Options.v().setPhaseOption("jb.emg", "on");
>> but it didn't really change anything.
>>
>> Eric Bodden wrote:
>>> Hi, Mario.
>>>
>>> If I remember correctly, there is no difference to other packs. Does
>>> this here not work?
>>>
>>> public class MySootMainExtension
>>> {
>>> public static void main(String[] args) {
>>> // Inject the analysis tagger into Soot
>>> PackManager.v().getPack("jb").add(
>>> new Transform("jb.mytransform",
>>> MyTransform.instance()));
>>> // Invoke soot.Main with arguments given
>>> Main.main(args);
>>> }
>>> }
>>>
>>> (adapted from the Soot Survivor's guide http://www.brics.dk/SootGuide/)
>>>
>>> Eric
>>>
>>> On 08/12/2007, Mario Mendez <mario at cs.unm.edu> wrote:
>>>> Hi all,
>>>>
>>>> I need to add a Transform at the end of the jb phase in order to be able
>>>> to manipulate the IR before it is transformed to SSA in the shimple
>>>> phase. I couldn't find any way of doing it that does not imply modifying
>>>> the Soot source, which is undesirable. Can you suggest any solution?
>>>> Normally we add the transformations to jtp or stp, but what if, like in
>>>> this case, you want them to be in jb?
>>>>
>>>> Thanks!
>>>> _______________________________________________
>>>> Soot-list mailing list
>>>> Soot-list at sable.mcgill.ca
>>>> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>>>>
>>>
>
>
More information about the Soot-list
mailing list