Temporary fix for procedure redundant elimination
Temporary fix for procedure redundant elimination

A procedure is identified by triplet <load_module, file_id, procedure_name>.
However, the same file of different load module will have different file_id. Hence, we need to also merge file from "fake load module" (we assume a fake module only have one fake file).

Using file_id is safer than const char filename due to issues with limits.h PATH_MAX
( see http://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
https://stackoverflow.com/questions/9449241/where-is-path-max-defined-in-linux )

Note: this only works with linux kernel load module. For general solution, we need to merge some parts from vdso branch.

HPCToolkit/hpctoolkit,HPCToolkit/hpctoolkit,HPCToolkit/hpctoolkit,HPCToolkit/hpctoolkit,HPCToolkit/hpctoolkit,HPCToolkit/hpctoolkit