On Windows, the __stdcall calling convention requires the caller to push the paramete...
authorXiaozhu Meng <xmeng@cs.wisc.edu>
Tue, 18 Aug 2015 20:00:43 +0000 (15:00 -0500)
committerXiaozhu Meng <xmeng@cs.wisc.edu>
Tue, 18 Aug 2015 20:00:43 +0000 (15:00 -0500)
commitff599a4efd6d66185ccd955a6d0d3abe627da1bd
tree9bda3338553406926ab24eaac00bc06e75988500
parentff1892170b5916b0f9b8cae072b1f1193444df4d
On Windows, the __stdcall calling convention requires the caller to push the parameters and requires the caller to clean up the parameters after the call returns.
This requirement would produce "add rsp, OFF" instructions after function calls to clean parameters, which look like stack tear down in our tail call heuristics and
we would have bogus tail calls and false sharing.

Change the tail call heuristics to check whether the add is immediately after a function call.
If it is, then the add cannot be treated as stack fram tear down.
parseAPI/src/IA_x86.C