Lines Matching refs:Trace

149 //   manipulation in an object called the Trace.  The Trace object can record a
152 // to be emitted it can flush the Trace or update it. Flushing the Trace
161 // The virtual state found in the Trace affects code generation. For example
270 Trace new_trace;
295 bool Trace::DeferredAction::Mentions(int that) {
304 bool Trace::mentions_reg(int reg) {
312 bool Trace::GetStoredPosition(int reg, int* cp_offset) {
361 int Trace::FindAffectedRegisters(DynamicBitSet* affected_registers,
379 void Trace::RestoreAffectedRegisters(RegExpMacroAssembler* assembler,
396 void Trace::PerformDeferredActions(RegExpMacroAssembler* assembler,
429 Trace::DeferredSetRegisterForLoop* psr =
430 static_cast<Trace::DeferredSetRegisterForLoop*>(action);
454 Trace::DeferredCapture* pc =
455 static_cast<Trace::DeferredCapture*>(action);
525 void Trace::Flush(RegExpCompiler* compiler, RegExpNode* successor) {
536 Trace new_state;
566 Trace new_state;
585 void NegativeSubmatchSuccess::Emit(RegExpCompiler* compiler, Trace* trace) {
611 void EndNode::Emit(RegExpCompiler* compiler, Trace* trace) {
724 Guard* guard, Trace* trace) {
1321 Trace* trace) {
1504 Trace* bounds_check_trace, Trace* trace,
1513 trace->at_start() == Trace::FALSE_VALUE);
1531 bounds_check_trace->at_start() == Trace::FALSE_VALUE);
2116 void EmitHat(RegExpCompiler* compiler, RegExpNode* on_success, Trace* trace) {
2120 Trace new_trace(*trace);
2158 void AssertionNode::EmitBoundaryCheck(RegExpCompiler* compiler, Trace* trace) {
2161 Trace::TriBool next_is_word_character = Trace::UNKNOWN;
2162 bool not_at_start = (trace->at_start() == Trace::FALSE_VALUE);
2171 if (bm->at(0)->is_non_word()) next_is_word_character = Trace::FALSE_VALUE;
2172 if (bm->at(0)->is_word()) next_is_word_character = Trace::TRUE_VALUE;
2176 next_is_word_character = Trace::FALSE_VALUE;
2177 if (lookahead->at(0)->is_word()) next_is_word_character = Trace::TRUE_VALUE;
2180 if (next_is_word_character == Trace::UNKNOWN) {
2197 } else if (next_is_word_character == Trace::TRUE_VALUE) {
2200 DCHECK(next_is_word_character == Trace::FALSE_VALUE);
2206 RegExpCompiler* compiler, Trace* trace,
2209 Trace new_trace(*trace);
2253 void AssertionNode::Emit(RegExpCompiler* compiler, Trace* trace) {
2264 if (trace->at_start() == Trace::FALSE_VALUE) {
2268 if (trace->at_start() == Trace::UNKNOWN) {
2270 Trace at_start_trace = *trace;
2271 at_start_trace.set_at_start(Trace::TRUE_VALUE);
2325 // In addition to all this we are passed a Trace, which can
2334 bool preloaded, Trace* trace,
2464 void TextNode::Emit(RegExpCompiler* compiler, Trace* trace) {
2498 Trace successor_trace(*trace);
2502 successor_trace.set_at_start(read_backward() ? Trace::UNKNOWN
2503 : Trace::FALSE_VALUE);
2508 void Trace::InvalidateCurrentCharacter() { characters_preloaded_ = 0; }
2510 void Trace::AdvanceCurrentPositionInTrace(int by, RegExpCompiler* compiler) {
2614 void LoopChoiceNode::Emit(RegExpCompiler* compiler, Trace* trace) {
3040 if (not_at_start) counter_backtrack_trace_.set_at_start(Trace::FALSE_VALUE);
3043 void ChoiceNode::AssertGuardsMentionRegisters(Trace* trace) {
3057 void ChoiceNode::SetUpPreLoad(RegExpCompiler* compiler, Trace* current_trace,
3062 EatsAtLeast(current_trace->at_start() == Trace::FALSE_VALUE);
3072 void ChoiceNode::Emit(RegExpCompiler* compiler, Trace* trace) {
3122 Trace new_trace(*trace);
3137 Trace* ChoiceNode::EmitGreedyLoop(RegExpCompiler* compiler, Trace* trace,
3153 Trace greedy_match_trace;
3154 if (not_at_start()) greedy_match_trace.set_at_start(Trace::FALSE_VALUE);
3166 Trace* new_trace = greedy_loop_state->counter_backtrack_trace();
3180 Trace* trace) {
3227 int first_choice, Trace* trace,
3246 Trace new_trace(*trace);
3253 if (not_at_start_) new_trace.set_at_start(Trace::FALSE_VALUE);
3309 Trace* trace,
3318 Trace out_of_line_trace(*trace);
3321 if (not_at_start_) out_of_line_trace.set_at_start(Trace::FALSE_VALUE);
3347 void ActionNode::Emit(RegExpCompiler* compiler, Trace* trace) {
3357 Trace::DeferredCapture new_capture(data_.u_position_register.reg,
3360 Trace new_trace = *trace;
3366 Trace::DeferredIncrementRegister new_increment(
3368 Trace new_trace = *trace;
3374 Trace::DeferredSetRegisterForLoop new_set(data_.u_store_register.reg,
3376 Trace new_trace = *trace;
3382 Trace::DeferredClearCaptures new_capture(Interval(
3384 Trace new_trace = *trace;
3450 Trace new_trace = *trace;
3467 void BackReferenceNode::Emit(RegExpCompiler* compiler, Trace* trace) {
3490 if (read_backward()) trace->set_at_start(Trace::UNKNOWN);