• vegorov@chromium.org's avatar
    Improve positions tracking inside the HGraphBuilder. · 8f170a66
    vegorov@chromium.org authored
    Instead of tracking simple absolute offset from the start of the script like other places do, track a pair of (inlining id, offset from the start of inlined function).
    
    This enables us to pinpoint with inlining path an instruction came from. Previously in multi-script environments we emitted positions that made very little sense because inside a single optimized function they would point to different scripts without a way to distinguish them.
    
    Start dumping the source of every inlined function to make possible IR viewing tools with integrated source views as there was previously no way to acquire this information from IR dumps. We also dump source position at which each inlining occured.
    
    Tracked positions are written into hydrogen.cfg as pos:<inlining-id>_<offset>.
    
    Flag --emit-opt-code-positions is renamed by this change into --hydrogen-track-positions to better convey it's meaning.
    
    In addition this change assigned global unique identifier to each optimization performed inside isolate. This allows to precisely match compilation artifacts (e.g. IR and disassembly) and deoptimizations.
    
    BUG=
    R=yangguo@chromium.org
    
    Review URL: https://codereview.chromium.org/140683011
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    8f170a66
lithium-arm.cc 81.9 KB