This is the mail archive of the gcc-help@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]

Re: Modifying GCC's emitted assembly code


Amittai Aviram <amittai.aviram@yale.edu> writes:

> I have been creating a modified version of GCC's libgomp library to support a special version of OpenMP.  In order for it to work properly, at the end of the main function in an OpenMP program, I have to insert a call to a special clean-up function (say, "clean_up()"), just before the "return" statement.  (I define my clean_up function in my version of libgomp.)  I would like to modify GCC so that it inserts the call to clean_u automatically, just before the code representing the return statement, such as the RET instruction in x86 assembly code.  How might I go about this?
>
> Alternatively, it might work if GCC inserted the function call into the boilerplate code of __exit.  How might I enable GCC to do that?

Would it work to just use atexit?  If that works, perhaps you could just
add a global constructor which calls atexit with your cleanup function.

Ian


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