1 // Copyright 2016 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_COMPILER_EFFECT_CONTROL_LINEARIZER_H_ 6 #define V8_COMPILER_EFFECT_CONTROL_LINEARIZER_H_ 7 8 #include <vector> 9 10 #include "src/handles/handles.h" 11 12 namespace v8 { 13 namespace internal { 14 15 class Map; 16 class Zone; 17 18 namespace compiler { 19 20 class JSGraph; 21 class NodeOriginTable; 22 class Schedule; 23 class SourcePositionTable; 24 class JSHeapBroker; 25 26 enum class MaskArrayIndexEnable { kDoNotMaskArrayIndex, kMaskArrayIndex }; 27 28 enum class MaintainSchedule { kMaintain, kDiscard }; 29 30 V8_EXPORT_PRIVATE void LinearizeEffectControl( 31 JSGraph* graph, Schedule* schedule, Zone* temp_zone, 32 SourcePositionTable* source_positions, NodeOriginTable* node_origins, 33 MaskArrayIndexEnable mask_array_index, MaintainSchedule maintain_schedule, 34 JSHeapBroker* broker); 35 36 } // namespace compiler 37 } // namespace internal 38 } // namespace v8 39 40 #endif // V8_COMPILER_EFFECT_CONTROL_LINEARIZER_H_ 41