About compiling process in GCJ and garbage collection
Li junsong <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <CA+kGxtN0jtDYRJjwBeifQ7amuqOdXN2JS+7HCt5mWT1K4YiT3g@mail.gmail.com> |
Hi there, I have asked some questions about the plugin loading problem ( refer to Andrew's answer: http://gcc.gnu.org/ml/java/2011-09/msg00001.html and Bryce's answer: http://gcc.gnu.org/ml/java/2011-09/msg00003.html ) And now I know ecj is the workhorse when compiling source code to bytecode. I still have a question about the compiling process: if I use GCJ to compile the java source code to machine code directly, it will first use ecj to compile java source to bytecode, and then compile the bytecode(or other information) to machine code.( right? ) BUT, I write a plugin, which removes a certain statement in gimple tree, and the gcj dump the gimple tree into file. The plugin works. That means that GCJ does do something in the process of compiling the source code, otherwise the ecj MUST use the same tree structure(GENERIC, GIMPLE) as gcc does to compile source code in order to provide information to the compiler of GCJ to do the rest process( in my case, to provide information for GCJ to remove a certain statement), which is kind of impossible since ecj is not part of gcc but GIMPLE is. Can you help correct me, and explain this? I have tried the usage of "gcj -v" to print the compiling information, and I see there are a few files being produced in /tmp, I think that it is the bytecode of java code, or the STRING type stuff( because I didn't find any string in the dumped file. ) Thanks, J. Li