mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Add a much more conservative strategy for aligning branch targets.
Previously, MBP essentially aligned every branch target it could. This bloats code quite a bit, especially non-looping code which has no real reason to prefer aligned branch targets so heavily. As Andy said in review, it's still a bit odd to do this without a real cost model, but this at least has much more plausible heuristics. Fixes PR13265. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161409 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -41,7 +41,6 @@ done:
|
||||
; CHECK-NEXT: align
|
||||
; CHECK-NEXT: .LBB1_4:
|
||||
; CHECK-NEXT: callq bar99
|
||||
; CHECK-NEXT: align
|
||||
; CHECK-NEXT: .LBB1_1:
|
||||
; CHECK-NEXT: callq body
|
||||
|
||||
@@ -79,7 +78,6 @@ exit:
|
||||
; CHECK-NEXT: .LBB2_5:
|
||||
; CHECK-NEXT: callq block_a_true_func
|
||||
; CHECK-NEXT: callq block_a_merge_func
|
||||
; CHECK-NEXT: align
|
||||
; CHECK-NEXT: .LBB2_1:
|
||||
; CHECK-NEXT: callq body
|
||||
;
|
||||
@@ -139,13 +137,13 @@ exit:
|
||||
; CHECK-NEXT: align
|
||||
; CHECK-NEXT: .LBB3_7:
|
||||
; CHECK-NEXT: callq bar100
|
||||
; CHECK-NEXT: align
|
||||
; CHECK-NEXT: .LBB3_1:
|
||||
; CHECK-NEXT: callq loop_header
|
||||
; CHECK: jl .LBB3_7
|
||||
; CHECK: jge .LBB3_3
|
||||
; CHECK-NEXT: callq bar101
|
||||
; CHECK-NEXT: jmp .LBB3_1
|
||||
; CHECK-NEXT: align
|
||||
; CHECK-NEXT: .LBB3_3:
|
||||
; CHECK: jge .LBB3_4
|
||||
; CHECK-NEXT: callq bar102
|
||||
|
Reference in New Issue
Block a user