• mikhail.naganov@gmail.com's avatar
    Fix CPU profiling for Crankshaft. · 56788625
    mikhail.naganov@gmail.com authored
    The main issue was due to multiple recompilations of functions.  Now
    code objects are grouped by function using SFI object address.
    JSFunction objects are no longer tracked, instead we track SFI object
    moves. To pick a correct code version, we now sample return addresses
    instead of JSFunction addresses.
    
    tools/{linux|mac|windows}-tickprocessor scripts differentiate
    between code optimization states for the same function
    (using * and ~ prefixes introduced earlier).
    
    DevTools CPU profiler treats all variants of function code as
    a single function.
    
    ll_prof treats each optimized variant as a separate entry, because
    it can disassemble each one of them.
    
    tickprocessor.py not updated -- it is deprecated and will be removed.
    
    BUG=v8/1087,b/3178160
    TEST=all existing tests pass, including Chromium layout tests
    
    Review URL: http://codereview.chromium.org/6551011
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    56788625
profile-generator.cc 88.5 KB