v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::LoopChoiceNode Class Reference

#include <regexp-nodes.h>

Inheritance diagram for v8::internal::LoopChoiceNode:
Collaboration diagram for v8::internal::LoopChoiceNode:

Public Member Functions

 LoopChoiceNode (bool body_can_be_zero_length, bool read_backward, int min_loop_iterations, Zone *zone)
 
void AddLoopAlternative (GuardedAlternative alt)
 
void AddContinueAlternative (GuardedAlternative alt)
 
void Emit (RegExpCompiler *compiler, Trace *trace) override
 
void GetQuickCheckDetails (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start) override
 
void GetQuickCheckDetailsFromLoopEntry (QuickCheckDetails *details, RegExpCompiler *compiler, int characters_filled_in, bool not_at_start) override
 
void FillInBMInfo (Isolate *isolate, int offset, int budget, BoyerMooreLookahead *bm, bool not_at_start) override
 
EatsAtLeastInfo EatsAtLeastFromLoopEntry () override
 
RegExpNodeloop_node ()
 
RegExpNodecontinue_node ()
 
bool body_can_be_zero_length ()
 
int min_loop_iterations () const
 
bool read_backward () override
 
LoopChoiceNodeAsLoopChoiceNode () override
 
void Accept (NodeVisitor *visitor) override
 
RegExpNodeFilterOneByte (int depth, RegExpCompiler *compiler) override
 
- Public Member Functions inherited from v8::internal::ChoiceNode
 ChoiceNode (int expected_size, Zone *zone)
 
ChoiceNodeAsChoiceNode () override
 
void AddAlternative (GuardedAlternative node)
 
ZoneList< GuardedAlternative > * alternatives ()
 
bool being_calculated ()
 
bool not_at_start ()
 
void set_not_at_start ()
 
void set_being_calculated (bool b)
 
virtual bool try_to_emit_quick_check_for_alternative (bool is_first)
 
- Public Member Functions inherited from v8::internal::RegExpNode
 RegExpNode (Zone *zone)
 
virtual ~RegExpNode ()
 
uint32_t EatsAtLeast (bool not_at_start)
 
bool EmitQuickCheck (RegExpCompiler *compiler, Trace *bounds_check_trace, Trace *trace, bool preload_has_checked_bounds, Label *on_possible_success, QuickCheckDetails *details_return, bool fall_through_on_failure, ChoiceNode *predecessor)
 
virtual int GreedyLoopTextLength ()
 
virtual RegExpNodeGetSuccessorOfOmnivorousTextNode (RegExpCompiler *compiler)
 
bool KeepRecursing (RegExpCompiler *compiler)
 
RegExpNodereplacement ()
 
RegExpNodeset_replacement (RegExpNode *replacement)
 
void SaveBMInfo (BoyerMooreLookahead *bm, bool not_at_start, int offset)
 
Labellabel ()
 
bool on_work_list ()
 
void set_on_work_list (bool value)
 
NodeInfoinfo ()
 
const EatsAtLeastInfoeats_at_least_info () const
 
void set_eats_at_least_info (const EatsAtLeastInfo &eats_at_least)
 
void SetDoNotInline ()
 
BoyerMooreLookaheadbm_info (bool not_at_start)
 
virtual SeqRegExpNodeAsSeqRegExpNode ()
 
Zonezone () const
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Private Member Functions

void AddAlternative (GuardedAlternative node)
 

Private Attributes

RegExpNodeloop_node_
 
RegExpNodecontinue_node_
 
bool body_can_be_zero_length_
 
bool read_backward_
 
bool traversed_loop_initialization_node_
 
int min_loop_iterations_
 

Friends

class IterationDecrementer
 
class LoopInitializationMarker
 

Additional Inherited Members

- Static Public Attributes inherited from v8::internal::RegExpNode
static const int kNodeIsTooComplexForGreedyLoops = kMinInt
 
static const int kRecursionBudget = 200
 
static const int kMaxCopiesCodeGenerated = 10
 
- Protected Types inherited from v8::internal::RegExpNode
enum  LimitResult { DONE , CONTINUE }
 
- Protected Member Functions inherited from v8::internal::ChoiceNode
int GreedyLoopTextLengthForAlternative (GuardedAlternative *alternative)
 
- Protected Member Functions inherited from v8::internal::RegExpNode
LimitResult LimitVersions (RegExpCompiler *compiler, Trace *trace)
 
void set_bm_info (bool not_at_start, BoyerMooreLookahead *bm)
 
- Protected Attributes inherited from v8::internal::ChoiceNode
ZoneList< GuardedAlternative > * alternatives_
 
- Protected Attributes inherited from v8::internal::RegExpNode
RegExpNodereplacement_
 

Detailed Description

Definition at line 737 of file regexp-nodes.h.

Constructor & Destructor Documentation

◆ LoopChoiceNode()

v8::internal::LoopChoiceNode::LoopChoiceNode ( bool body_can_be_zero_length,
bool read_backward,
int min_loop_iterations,
Zone * zone )
inline

Definition at line 739 of file regexp-nodes.h.

Member Function Documentation

◆ Accept()

void v8::internal::LoopChoiceNode::Accept ( NodeVisitor * visitor)
overridevirtual

Reimplemented from v8::internal::ChoiceNode.

◆ AddAlternative()

void v8::internal::LoopChoiceNode::AddAlternative ( GuardedAlternative node)
inlineprivate

Definition at line 774 of file regexp-nodes.h.

Here is the call graph for this function:

◆ AddContinueAlternative()

void v8::internal::LoopChoiceNode::AddContinueAlternative ( GuardedAlternative alt)

Definition at line 2705 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ AddLoopAlternative()

void v8::internal::LoopChoiceNode::AddLoopAlternative ( GuardedAlternative alt)

Definition at line 2699 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ AsLoopChoiceNode()

LoopChoiceNode * v8::internal::LoopChoiceNode::AsLoopChoiceNode ( )
inlineoverride

Definition at line 766 of file regexp-nodes.h.

◆ body_can_be_zero_length()

bool v8::internal::LoopChoiceNode::body_can_be_zero_length ( )
inline

Definition at line 763 of file regexp-nodes.h.

◆ continue_node()

RegExpNode * v8::internal::LoopChoiceNode::continue_node ( )
inline

Definition at line 762 of file regexp-nodes.h.

◆ EatsAtLeastFromLoopEntry()

EatsAtLeastInfo v8::internal::LoopChoiceNode::EatsAtLeastFromLoopEntry ( )
overridevirtual

Reimplemented from v8::internal::RegExpNode.

Definition at line 1528 of file regexp-compiler.cc.

◆ Emit()

void v8::internal::LoopChoiceNode::Emit ( RegExpCompiler * compiler,
Trace * trace )
overridevirtual

Reimplemented from v8::internal::ChoiceNode.

Definition at line 2711 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ FillInBMInfo()

void v8::internal::LoopChoiceNode::FillInBMInfo ( Isolate * isolate,
int offset,
int budget,
BoyerMooreLookahead * bm,
bool not_at_start )
overridevirtual

Reimplemented from v8::internal::ChoiceNode.

Definition at line 2143 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ FilterOneByte()

RegExpNode * v8::internal::LoopChoiceNode::FilterOneByte ( int depth,
RegExpCompiler * compiler )
overridevirtual

Reimplemented from v8::internal::ChoiceNode.

Definition at line 2004 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ GetQuickCheckDetails()

void v8::internal::LoopChoiceNode::GetQuickCheckDetails ( QuickCheckDetails * details,
RegExpCompiler * compiler,
int characters_filled_in,
bool not_at_start )
overridevirtual

Reimplemented from v8::internal::ChoiceNode.

Definition at line 2094 of file regexp-compiler.cc.

Here is the call graph for this function:

◆ GetQuickCheckDetailsFromLoopEntry()

void v8::internal::LoopChoiceNode::GetQuickCheckDetailsFromLoopEntry ( QuickCheckDetails * details,
RegExpCompiler * compiler,
int characters_filled_in,
bool not_at_start )
overridevirtual

Reimplemented from v8::internal::RegExpNode.

Definition at line 2121 of file regexp-compiler.cc.

◆ loop_node()

RegExpNode * v8::internal::LoopChoiceNode::loop_node ( )
inline

Definition at line 761 of file regexp-nodes.h.

◆ min_loop_iterations()

int v8::internal::LoopChoiceNode::min_loop_iterations ( ) const
inline

Definition at line 764 of file regexp-nodes.h.

◆ read_backward()

bool v8::internal::LoopChoiceNode::read_backward ( )
inlineoverridevirtual

Reimplemented from v8::internal::ChoiceNode.

Definition at line 765 of file regexp-nodes.h.

Friends And Related Symbol Documentation

◆ IterationDecrementer

friend class IterationDecrementer
friend

Definition at line 796 of file regexp-nodes.h.

◆ LoopInitializationMarker

friend class LoopInitializationMarker
friend

Definition at line 797 of file regexp-nodes.h.

Member Data Documentation

◆ body_can_be_zero_length_

bool v8::internal::LoopChoiceNode::body_can_be_zero_length_
private

Definition at line 780 of file regexp-nodes.h.

◆ continue_node_

RegExpNode* v8::internal::LoopChoiceNode::continue_node_
private

Definition at line 779 of file regexp-nodes.h.

◆ loop_node_

RegExpNode* v8::internal::LoopChoiceNode::loop_node_
private

Definition at line 778 of file regexp-nodes.h.

◆ min_loop_iterations_

int v8::internal::LoopChoiceNode::min_loop_iterations_
private

Definition at line 794 of file regexp-nodes.h.

◆ read_backward_

bool v8::internal::LoopChoiceNode::read_backward_
private

Definition at line 781 of file regexp-nodes.h.

◆ traversed_loop_initialization_node_

bool v8::internal::LoopChoiceNode::traversed_loop_initialization_node_
private

Definition at line 788 of file regexp-nodes.h.


The documentation for this class was generated from the following files: