source: webkit/trunk/Source/JavaScriptCore/dfg/DFGNodeFlags.cpp

Last change on this file was 261755, checked in by Ross Kirsling, 5 years ago

[IWYU] Remove unnecessary includes from JSC implementation files
https://bugs.webkit.org/show_bug.cgi?id=211867

Reviewed by Keith Miller.

  • API/:
  • assembler/:
  • b3/:
  • bindings/:
  • builtins/BuiltinExecutables.cpp:
  • bytecode/:
  • bytecompiler/:
  • debugger/:
  • dfg/:
  • disassembler/:
  • ftl/:
  • heap/:
  • inspector/:
  • interpreter/:
  • jit/:
  • jsc.cpp:
  • llint/:
  • parser/:
  • profiler/:
  • runtime/:
  • testRegExp.cpp:
  • tools/:
  • wasm/:
  • yarr/:
File size: 4.2 KB
Line 
1/*
2 * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "DFGNodeFlags.h"
28
29#if ENABLE(DFG_JIT)
30
31#include <wtf/CommaPrinter.h>
32#include <wtf/StringPrintStream.h>
33
34namespace JSC { namespace DFG {
35
36void dumpNodeFlags(PrintStream& actualOut, NodeFlags flags)
37{
38 StringPrintStream out;
39 CommaPrinter comma("|");
40
41 if (flags & NodeResultMask) {
42 switch (flags & NodeResultMask) {
43 case NodeResultJS:
44 out.print(comma, "JS");
45 break;
46 case NodeResultNumber:
47 out.print(comma, "Number");
48 break;
49 case NodeResultDouble:
50 out.print(comma, "Double");
51 break;
52 case NodeResultInt32:
53 out.print(comma, "Int32");
54 break;
55 case NodeResultInt52:
56 out.print(comma, "Int52");
57 break;
58 case NodeResultBoolean:
59 out.print(comma, "Boolean");
60 break;
61 case NodeResultStorage:
62 out.print(comma, "Storage");
63 break;
64 default:
65 RELEASE_ASSERT_NOT_REACHED();
66 break;
67 }
68 }
69
70 if (flags & NodeMustGenerate)
71 out.print(comma, "MustGen");
72
73 if (flags & NodeHasVarArgs)
74 out.print(comma, "VarArgs");
75
76 if (flags & NodeResultMask) {
77 if (!(flags & NodeBytecodeUsesAsNumber) && !(flags & NodeBytecodeNeedsNegZero))
78 out.print(comma, "PureInt");
79 else if (!(flags & NodeBytecodeUsesAsNumber))
80 out.print(comma, "PureInt(w/ neg zero)");
81 else if (!(flags & NodeBytecodeNeedsNegZero))
82 out.print(comma, "PureNum");
83 if (flags & NodeBytecodeUsesAsOther)
84 out.print(comma, "UseAsOther");
85 }
86
87 if (flags & NodeMayHaveDoubleResult)
88 out.print(comma, "MayHaveDoubleResult");
89
90 if (flags & NodeMayHaveBigInt32Result)
91 out.print(comma, "MayHaveBigInt32Result");
92
93 if (flags & NodeMayHaveHeapBigIntResult)
94 out.print(comma, "MayHaveHeapBigIntResult");
95
96 if (flags & NodeMayHaveNonNumericResult)
97 out.print(comma, "MayHaveNonNumericResult");
98
99 if (flags & NodeMayOverflowInt52)
100 out.print(comma, "MayOverflowInt52");
101
102 if (flags & NodeMayOverflowInt32InBaseline)
103 out.print(comma, "MayOverflowInt32InBaseline");
104
105 if (flags & NodeMayOverflowInt32InDFG)
106 out.print(comma, "MayOverflowInt32InDFG");
107
108 if (flags & NodeMayNegZeroInBaseline)
109 out.print(comma, "MayNegZeroInBaseline");
110
111 if (flags & NodeMayNegZeroInDFG)
112 out.print(comma, "MayNegZeroInDFG");
113
114 if (flags & NodeBytecodeUsesAsInt)
115 out.print(comma, "UseAsInt");
116
117 if (flags & NodeBytecodeUsesAsArrayIndex)
118 out.print(comma, "ReallyWantsInt");
119
120 if (flags & NodeIsFlushed)
121 out.print(comma, "IsFlushed");
122
123 CString string = out.toCString();
124 if (!string.length())
125 actualOut.print("<empty>");
126 else
127 actualOut.print(string);
128}
129
130} } // namespace JSC::DFG
131
132#endif // ENABLE(DFG_JIT)
133
Note: See TracBrowser for help on using the repository browser.