c5d547fdb8
When the unoptimized code of a function exceeds 1 MB, start its optimized compile with far_branch_level=1 instead of 0. Without this, the assembler fails on out-of-range conditional branches at level=0, longjmps out of the optimizing pipeline, and the whole pipeline reruns at level=1 from scratch. Measured on a naive 49 KLOC generated lexer with --huge_method_cutoff gates lifted: JIT compile drops from ~26.6s to ~13.2s (about 50%). Work towards https://github.com/dart-lang/sdk/issues/63230 TEST=ci Change-Id: I2608a23ef899603a46b401b71be7322b7a8dd44b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/506120 Auto-Submit: Modestas Valauskas <valauskasmodestas@gmail.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Reviewed-by: Slava Egorov <vegorov@google.com> Commit-Queue: Slava Egorov <vegorov@google.com>