This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[tree-ssa] FYI: GENERIC vs. C front end dependencies for G95


Hi,

Ever since we began working on it, the G95 backend interface has had dependcies on files from the C front end. We needed those when tree-ssa was still doing SIMPLE, and the whole "language-independent" tree IR had C-isms in it everywhere (trees could only be expanded if you used c_expand_body!). Back then you always had to include at least c-common.h and link with various C front end files.

Since the introduction of GENERIC, all the tree codes we required are in tree.h, and the function trees can be expaned with expand_expr. When the discussions started about moving the C front end to its own directory, I decided to try and see if we could now get about without any dependencies on the C front end. The last patch went in yesterday, and G95 is now almost completely independent of the C front end. Hurray!!

There are still a few hacks we need to be able to successfully build G95. These are related to the use of C-specific types in builtin-types.def. We have to define intmax_type_node, string_type_node and const_string_type_node. We just set them to some random type node because we never use the builtins that need those type nodes in their definition. The Java front end needs similar hacks, see java/builtins.c (tree-ssa-branch, of course).

But if you compare it to one year ago, when we had to link to c-common, c-semantics, c-decl, c-typeck and c-dump, you can see the improvement. Thanks Jason for coming up with GENERIC/GIMPLE! :-)

Gr.
Steven



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]