OLD | NEW |
(Empty) | |
| 1 /* |
| 2 This file is provided under a dual BSD/GPLv2 license. When using or |
| 3 redistributing this file, you may do so under either license. |
| 4 |
| 5 GPL LICENSE SUMMARY |
| 6 |
| 7 Copyright(c) 2005-2012 Intel Corporation. All rights reserved. |
| 8 |
| 9 This program is free software; you can redistribute it and/or modify |
| 10 it under the terms of version 2 of the GNU General Public License as |
| 11 published by the Free Software Foundation. |
| 12 |
| 13 This program is distributed in the hope that it will be useful, but |
| 14 WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 16 General Public License for more details. |
| 17 |
| 18 You should have received a copy of the GNU General Public License |
| 19 along with this program; if not, write to the Free Software |
| 20 Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. |
| 21 The full GNU General Public License is included in this distribution |
| 22 in the file called LICENSE.GPL. |
| 23 |
| 24 Contact Information: |
| 25 http://software.intel.com/en-us/articles/intel-vtune-amplifier-xe/ |
| 26 |
| 27 BSD LICENSE |
| 28 |
| 29 Copyright(c) 2005-2012 Intel Corporation. All rights reserved. |
| 30 All rights reserved. |
| 31 |
| 32 Redistribution and use in source and binary forms, with or without |
| 33 modification, are permitted provided that the following conditions |
| 34 are met: |
| 35 |
| 36 * Redistributions of source code must retain the above copyright |
| 37 notice, this list of conditions and the following disclaimer. |
| 38 * Redistributions in binary form must reproduce the above copyright |
| 39 notice, this list of conditions and the following disclaimer in |
| 40 the documentation and/or other materials provided with the |
| 41 distribution. |
| 42 * Neither the name of Intel Corporation nor the names of its |
| 43 contributors may be used to endorse or promote products derived |
| 44 from this software without specific prior written permission. |
| 45 |
| 46 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 47 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 48 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 49 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| 50 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| 51 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 52 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 53 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 54 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 55 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 56 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 57 */ |
| 58 #ifndef V8_VTUNE_JIT_H_ |
| 59 #define V8_VTUNE_JIT_H_ |
| 60 |
| 61 #ifdef ENABLE_VTUNE_JIT_INTERFACE |
| 62 #define VTUNEDEBUG(action) ((void) 0) |
| 63 // #define VTUNEDEBUG(action) action |
| 64 #include "jitprofiling.h" |
| 65 #include "../../v8.h" |
| 66 |
| 67 #define VTUNERUNNING (iJIT_IsProfilingActive() == iJIT_SAMPLING_ON) |
| 68 |
| 69 namespace v8 { |
| 70 namespace internal { |
| 71 |
| 72 class VtuneJITLineInfo : public Malloced { |
| 73 public: |
| 74 VtuneJITLineInfo() |
| 75 : vtunelineinfo_(10) { } |
| 76 |
| 77 List<LineNumberInfo>* vtunelineinfo() { |
| 78 return &vtunelineinfo_; |
| 79 } |
| 80 |
| 81 void AddLineInfo(const LineNumberInfo& line_info) { |
| 82 vtunelineinfo_.Add(line_info); |
| 83 } |
| 84 |
| 85 void AddLineInfo(unsigned offset, unsigned pos) { |
| 86 LineNumberInfo this_line_info; |
| 87 this_line_info.Offset = offset; |
| 88 this_line_info.LineNumber = pos; |
| 89 AddLineInfo(this_line_info); |
| 90 } |
| 91 |
| 92 unsigned GetSize() { |
| 93 return vtunelineinfo_.length(); |
| 94 } |
| 95 |
| 96 private: |
| 97 List<LineNumberInfo> vtunelineinfo_; |
| 98 }; |
| 99 |
| 100 |
| 101 class VTUNEJITInterface: public AllStatic { |
| 102 public: |
| 103 static void AddCode(const char* methodname, |
| 104 Code* code, |
| 105 Handle<Script> script); |
| 106 |
| 107 static void AddCode(const char* methodname, |
| 108 Code* code); |
| 109 |
| 110 static void AddCode(const char* methodname, |
| 111 Handle<Code> code); |
| 112 |
| 113 |
| 114 static void AddCode(Handle<String> methodname, |
| 115 Handle<Code> code); |
| 116 |
| 117 |
| 118 static void AddCode(Handle<String> methodname, |
| 119 Handle<Code> code, |
| 120 Handle<Script> script); |
| 121 |
| 122 static void AddCode(String *methodname, Code* code); |
| 123 |
| 124 static void AddCode(Code* code); |
| 125 |
| 126 static void AddCode(Handle<Code> code); |
| 127 |
| 128 static void RegisterDetailedLineInfo(Code* code, VtuneJITLineInfo* line_info); |
| 129 |
| 130 private: |
| 131 static Mutex* vtunemutex_; |
| 132 }; |
| 133 |
| 134 #define VTUNEJIT(action) VTUNEJITInterface::action |
| 135 }} |
| 136 #else // ENABLE_VTUNE_JIT_INTERFACE |
| 137 #define VTUNEJIT(action) ((void) 0) |
| 138 #define VTUNEDEBUG(action) ((void) 0) |
| 139 #define VTUNERUNNING 0 |
| 140 #endif // ENABLE_VTUNE_JIT_INTERFACE |
| 141 #endif // V8_VTUNE_JIT_H_ |
OLD | NEW |