Modifying GCC's emitted assembly code
Ian Lance Taylor
iant@google.com
Sun Nov 20 08:43:00 GMT 2011
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
More information about the Gcc-help
mailing list