Changeset 142377 in webkit for trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp
- Timestamp:
- Feb 9, 2013, 11:33:00 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp
r141069 r142377 37 37 #include "DFGCFAPhase.h" 38 38 #include "DFGCFGSimplificationPhase.h" 39 #include "DFGCPSRethreadingPhase.h" 39 40 #include "DFGCSEPhase.h" 40 41 #include "DFGConstantFoldingPhase.h" 41 42 #include "DFGFixupPhase.h" 42 43 #include "DFGJITCompiler.h" 44 #include "DFGPredictionInjectionPhase.h" 43 45 #include "DFGPredictionPropagationPhase.h" 44 46 #include "DFGStructureCheckHoistingPhase.h" 47 #include "DFGUnificationPhase.h" 45 48 #include "DFGValidate.h" 46 49 #include "DFGVirtualRegisterAllocationPhase.h" … … 73 76 return false; 74 77 75 if ( verboseCompilationEnabled())78 if (logCompilationChanges()) 76 79 dataLog("DFG compiling ", *codeBlock, ", number of instructions = ", codeBlock->instructionCount(), "\n"); 77 80 … … 103 106 return false; 104 107 105 if (compileMode == CompileFunction)106 dfg.predictArgumentTypes();107 108 108 // By this point the DFG bytecode parser will have potentially mutated various tables 109 109 // in the CodeBlock. This is a good time to perform an early shrink, which is more … … 114 114 if (validationEnabled()) 115 115 validate(dfg); 116 117 performCPSRethreading(dfg); 118 performUnification(dfg); 119 performPredictionInjection(dfg); 120 121 if (validationEnabled()) 122 validate(dfg); 123 116 124 performPredictionPropagation(dfg); 117 125 performFixup(dfg); 118 126 performStructureCheckHoisting(dfg); 127 119 128 unsigned cnt = 1; 120 129 dfg.m_fixpointState = FixpointNotConverged; 121 130 for (;; ++cnt) { 122 if ( verboseCompilationEnabled())131 if (logCompilationChanges()) 123 132 dataLogF("DFG beginning optimization fixpoint iteration #%u.\n", cnt); 124 133 bool changed = false; 134 135 if (validationEnabled()) 136 validate(dfg); 137 125 138 performCFA(dfg); 126 139 changed |= performConstantFolding(dfg); … … 128 141 changed |= performCFGSimplification(dfg); 129 142 changed |= performCSE(dfg); 143 130 144 if (!changed) 131 145 break; 146 132 147 dfg.resetExitStates(); 133 148 performFixup(dfg); 149 performCPSRethreading(dfg); 134 150 } 151 135 152 dfg.m_fixpointState = FixpointConverged; 136 153 performCSE(dfg); 137 if (verboseCompilationEnabled()) 154 performCPSRethreading(dfg); // This should usually be a no-op since CSE rarely dethreads the graph. 155 if (logCompilationChanges()) 138 156 dataLogF("DFG optimization fixpoint converged in %u iterations.\n", cnt); 139 157 performVirtualRegisterAllocation(dfg);
Note:
See TracChangeset
for help on using the changeset viewer.