Files
yusufcanislek f625426bae lifter: expand loop microtest coverage (+4 net tests, batch 11)
Additive coverage only. Final batch for this session.

Adds four net tests:
  - pending_generalized_loop_indirect_jump_allowed_when_unresolved
    pins the current pending-path reuse behavior for unresolved IndirectJump
  - generalized_loop_backup_canonical_only_path_leaves_flag_phis_empty
    canonical-only fallback leaves generalizedLoopFlagPhis empty
  - make_generalized_loop_backup_preserves_concrete_rdi_on_first_backedge
    completes preserved-register coverage for RDI (index 7)
  - generalized_loop_control_slot_byte_count_one_returns_masked_phi
    narrow-width control_slot path (byteCount 1)
  - generalized_loop_target_slot_byte_count_one_returns_masked_phi
    narrow-width target_slot path (byteCount 1)

One attempted trampoline-relaxation accept test was removed before commit:
  the acceptance condition is real in code, but constructing a stable
  public-API scenario that trips it without entangling blockCanReach and
  unfinished CFG artifacts proved brittle. Not worth landing a flaky test.

Verified:
  - python test.py micro: all 153 microtests pass (was 149)
  - python test.py baseline: all rewrite regression checks passed,
    determinism check passed (42 golden files match)
  - Themida reference sample unchanged (2544/0/0)

Loop-related microtest count: 100 -> 104 per the
/loop|backedge|generalized|rolled|themida|phi_address/i regex.

Session cumulative total: 36 baseline -> 104 current (+68).
2026-04-23 05:48:44 +03:00
..
2024-07-09 14:26:09 +03:00