Fix non-deterministic parallel parsing on POWER 8. The problems are 377/head
authorXiaozhu Meng <xmeng@cs.wisc.edu>
Mon, 10 Sep 2018 21:58:15 +0000 (16:58 -0500)
committerXiaozhu Meng <xmeng@cs.wisc.edu>
Mon, 10 Sep 2018 21:58:15 +0000 (16:58 -0500)
commit83855db1d9025169fba1e6b1e9ce114fc8eb5d81
tree3da8ee7794286bd27d3d85e0ea348ec527ad1d70
parent0b80af0577148e723e9a7b2d9d714dc46d0c9b7a
Fix non-deterministic parallel parsing on POWER 8. The problems are
mostly related to the new ABI, where each function has two entries.

1. Tail call heuristics need to find the function with a normal
   function name
2. A function having two entries cause many ParseAPI::Function to
   share code. This exposes issues in our non-returning function
   analysis.

   2.A. The two ParseAPI::Function should have the same return status.
        I just let one ParseAPI::Function delayed by the other.
   2.B. No longer use UNKNOWN status. UNKNOWN should just be RETURN
        as we do not know the control flow, so we should assume the
        function may return.
parseAPI/h/CFG.h
parseAPI/src/Block.C
parseAPI/src/CFGFactory.C
parseAPI/src/Function.C
parseAPI/src/IA_power.C
parseAPI/src/Parser.C
parseAPI/src/ParserDetails.C