GNU Assembler Start of Function & basic block

Ramana Radhakrishnan
Tue Jan 1 05:47:00 GMT 2008


On Jan 1, 2008 3:35 AM, Balaji V. Iyer <> wrote:
> Hello Everyone,
>        I have a question regarding GNU Assembler.
> I am currently working with the OpenRISC port of GNU Binutils (2.11.92)
> and I am making some modifications to the ISA. I want to insert special
> instructions at the beginning and end of each basic block AND another
> set of special instructions at the beginning and end of function (I
> tried to do it in GCC and I was unsuccessful in representing these
> instructions in the machine description).

I don't think the assembler can help you figure out the basic blocks
by default. You would have to write code to detect basic blocks and
then add these instructions.  I'd suggest you use GCC for such

For functions its easy - you have to modify your expand_{pro/epi}logue
functions for doing this if you have RTL based prologue and epilogues
based on command line switches.

For basic blocks you might choose to look at the coverage options to
figure this out (fprofile-arcs and their friends).Or you could write a
pass that was in cfglayout mode to insert these special instructions.
Anyways this discussion is more relevant to the GCC list , so you
could continue it there.



> I looked through the GNU Assembler Internals manual and I couldn't find
> any specialized functions that can be used to access the start and end
> of each basic block OR function-call (I may have missed something...).
> Can someone please point me in the right direction?
> Any help is greatly appreciated!
> Thanks in advance,
> Yours Sincerely,
> Balaji V. Iyer.
> --
> Balaji V. Iyer
> PhD Student,
> Center for Efficient, Scalable and Reliable Computing,
> Department of Electrical and Computer Engineering,
> North Carolina State University.

Ramana Radhakrishnan

More information about the Binutils mailing list