Thanks Tobias, I am wanting to call this function right before we hit the gimplify_function_tree (), so I guess I am right before the middle-end.......
-Balaji V. Iyer. -----Original Message----- From: Tobias Burnus [mailto:bur...@net-b.de] Sent: Tuesday, May 22, 2012 3:25 AM Cc: i...@google.com; Iyer, Balaji V; 'gcc@gcc.gnu.org' Subject: Re: Enabling a function based on Language Ian Lance Taylor wrote: > "Iyer, Balaji V"<balaji.v.i...@intel.com> writes: > >> Is there a #define in GCC that will turn on only for certain languages? >> I am trying to use build_array_ref but it is giving me a undefined reference >> for f951. This code that I am trying to use will ONLY execute if we have a >> C/C++ code. Is it possible for me to enclose this inside some #defines (or >> a combination of them)? > > By definition, no, there isn't. The middle-end is compiled once, into > a library. Then each frontend is linked against that library. > > Calling a frontend function like build_array_ref from the middle-end > is always a mistake. In the middle-end you should probably be making > a POINTER_PLUS_EXPR node or something along those lines. Unless, of course, one goes the route which Richard once suggested: Adding array and scalarizer support to the middle end, http://gcc.gnu.org/wiki/GCCGathering2011Fortran#Scalarizer (See all three links; mistakes in the Wiki are mine, made when I tried to summarize/understand Richard's draft patches. The project got stalled as there was not enough developer time on the Fortran side and as the current approach works relatively well. ME support would be beneficial as it would allow for certain optimizations which are not possible in the front end.) Tobias