Skip to content

Commit ec587dc

Browse files
committed
[TableGen] Fix regunit superset calculation
Keep creating new supersets from new supersets until we reach a fixed point. For most targets this ends up with fewer regunitsets overall because it makes pruning more effective.
1 parent 57d0d3b commit ec587dc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3802
-3712
lines changed

llvm/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,20 @@ target triple = "x86_64-unknown-linux-gnu"
1717
define dso_local i32 @main() nounwind uwtable {
1818
; CHECK-LABEL: main:
1919
; CHECK: # %bb.0: # %entry
20-
; CHECK-NEXT: movl i(%rip), %esi
20+
; CHECK-NEXT: movl i(%rip), %edx
2121
; CHECK-NEXT: movl j(%rip), %eax
22-
; CHECK-NEXT: movl %esi, %edx
23-
; CHECK-NEXT: shrl $8, %edx
22+
; CHECK-NEXT: movl %edx, %esi
23+
; CHECK-NEXT: shrl $8, %esi
2424
; CHECK-NEXT: movsbl %al, %ecx
2525
; CHECK-NEXT: shrl $8, %eax
2626
; CHECK-NEXT: cbtw
27-
; CHECK-NEXT: idivb %dl
28-
; CHECK-NEXT: movl %eax, %edx
29-
; CHECK-NEXT: movl %ecx, %eax
3027
; CHECK-NEXT: idivb %sil
31-
; CHECK-NEXT: movzbl %dl, %ecx
28+
; CHECK-NEXT: movzbl %al, %esi
29+
; CHECK-NEXT: movl %ecx, %eax
30+
; CHECK-NEXT: idivb %dl
3231
; CHECK-NEXT: movzbl %al, %eax
3332
; CHECK-NEXT: movd %eax, %xmm0
34-
; CHECK-NEXT: pinsrb $1, %ecx, %xmm0
33+
; CHECK-NEXT: pinsrb $1, %esi, %xmm0
3534
; CHECK-NEXT: pextrw $0, %xmm0, res(%rip)
3635
; CHECK-NEXT: xorl %eax, %eax
3736
; CHECK-NEXT: retq

llvm/test/CodeGen/X86/abs.ll

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -487,10 +487,10 @@ define <16 x i8> @test_v16i8(<16 x i8> %a) nounwind {
487487
; X86: # %bb.0:
488488
; X86-NEXT: pushl %ebx
489489
; X86-NEXT: subl $12, %esp
490+
; X86-NEXT: movb {{[0-9]+}}(%esp), %ch
490491
; X86-NEXT: movb {{[0-9]+}}(%esp), %bh
491492
; X86-NEXT: movb {{[0-9]+}}(%esp), %bl
492493
; X86-NEXT: movb {{[0-9]+}}(%esp), %dh
493-
; X86-NEXT: movb {{[0-9]+}}(%esp), %ch
494494
; X86-NEXT: movb {{[0-9]+}}(%esp), %ah
495495
; X86-NEXT: movb {{[0-9]+}}(%esp), %dl
496496
; X86-NEXT: movb {{[0-9]+}}(%esp), %cl
@@ -509,26 +509,23 @@ define <16 x i8> @test_v16i8(<16 x i8> %a) nounwind {
509509
; X86-NEXT: xorb %al, %ah
510510
; X86-NEXT: subb %al, %ah
511511
; X86-NEXT: movb %ah, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
512-
; X86-NEXT: movb %ch, %al
513-
; X86-NEXT: sarb $7, %al
514-
; X86-NEXT: xorb %al, %ch
515-
; X86-NEXT: subb %al, %ch
516-
; X86-NEXT: movb %ch, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
517512
; X86-NEXT: movb %dh, %al
518513
; X86-NEXT: sarb $7, %al
519514
; X86-NEXT: xorb %al, %dh
520515
; X86-NEXT: subb %al, %dh
521-
; X86-NEXT: movb %dh, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
522516
; X86-NEXT: movl %ebx, %eax
523517
; X86-NEXT: sarb $7, %al
524518
; X86-NEXT: xorb %al, %bl
525519
; X86-NEXT: subb %al, %bl
526-
; X86-NEXT: movb %bl, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
527520
; X86-NEXT: movb %bh, %al
528521
; X86-NEXT: sarb $7, %al
529522
; X86-NEXT: xorb %al, %bh
530523
; X86-NEXT: subb %al, %bh
531-
; X86-NEXT: movb %bh, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
524+
; X86-NEXT: movb %ch, %al
525+
; X86-NEXT: sarb $7, %al
526+
; X86-NEXT: xorb %al, %ch
527+
; X86-NEXT: subb %al, %ch
528+
; X86-NEXT: movb %ch, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
532529
; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
533530
; X86-NEXT: movl %ecx, %eax
534531
; X86-NEXT: sarb $7, %al
@@ -547,21 +544,24 @@ define <16 x i8> @test_v16i8(<16 x i8> %a) nounwind {
547544
; X86-NEXT: xorb %al, %cl
548545
; X86-NEXT: subb %al, %cl
549546
; X86-NEXT: movb %cl, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
550-
; X86-NEXT: movb {{[0-9]+}}(%esp), %bh
551-
; X86-NEXT: movb %bh, %al
547+
; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
548+
; X86-NEXT: movl %ecx, %eax
552549
; X86-NEXT: sarb $7, %al
553-
; X86-NEXT: xorb %al, %bh
554-
; X86-NEXT: subb %al, %bh
555-
; X86-NEXT: movb {{[0-9]+}}(%esp), %bl
556-
; X86-NEXT: movl %ebx, %eax
550+
; X86-NEXT: xorb %al, %cl
551+
; X86-NEXT: subb %al, %cl
552+
; X86-NEXT: movb %cl, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
553+
; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
554+
; X86-NEXT: movl %ecx, %eax
557555
; X86-NEXT: sarb $7, %al
558-
; X86-NEXT: xorb %al, %bl
559-
; X86-NEXT: subb %al, %bl
560-
; X86-NEXT: movb {{[0-9]+}}(%esp), %dh
561-
; X86-NEXT: movb %dh, %al
556+
; X86-NEXT: xorb %al, %cl
557+
; X86-NEXT: subb %al, %cl
558+
; X86-NEXT: movb %cl, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
559+
; X86-NEXT: movzbl {{[0-9]+}}(%esp), %ecx
560+
; X86-NEXT: movl %ecx, %eax
562561
; X86-NEXT: sarb $7, %al
563-
; X86-NEXT: xorb %al, %dh
564-
; X86-NEXT: subb %al, %dh
562+
; X86-NEXT: xorb %al, %cl
563+
; X86-NEXT: subb %al, %cl
564+
; X86-NEXT: movb %cl, {{[-0-9]+}}(%e{{[sb]}}p) # 1-byte Spill
565565
; X86-NEXT: movb {{[0-9]+}}(%esp), %ch
566566
; X86-NEXT: movb %ch, %al
567567
; X86-NEXT: sarb $7, %al
@@ -581,9 +581,12 @@ define <16 x i8> @test_v16i8(<16 x i8> %a) nounwind {
581581
; X86-NEXT: movb %cl, 15(%eax)
582582
; X86-NEXT: movb %dl, 14(%eax)
583583
; X86-NEXT: movb %ch, 13(%eax)
584-
; X86-NEXT: movb %dh, 12(%eax)
585-
; X86-NEXT: movb %bl, 11(%eax)
586-
; X86-NEXT: movb %bh, 10(%eax)
584+
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
585+
; X86-NEXT: movb %cl, 12(%eax)
586+
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
587+
; X86-NEXT: movb %cl, 11(%eax)
588+
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
589+
; X86-NEXT: movb %cl, 10(%eax)
587590
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
588591
; X86-NEXT: movb %cl, 9(%eax)
589592
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
@@ -592,12 +595,9 @@ define <16 x i8> @test_v16i8(<16 x i8> %a) nounwind {
592595
; X86-NEXT: movb %cl, 7(%eax)
593596
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
594597
; X86-NEXT: movb %cl, 6(%eax)
595-
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
596-
; X86-NEXT: movb %cl, 5(%eax)
597-
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
598-
; X86-NEXT: movb %cl, 4(%eax)
599-
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
600-
; X86-NEXT: movb %cl, 3(%eax)
598+
; X86-NEXT: movb %bh, 5(%eax)
599+
; X86-NEXT: movb %bl, 4(%eax)
600+
; X86-NEXT: movb %dh, 3(%eax)
601601
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload
602602
; X86-NEXT: movb %cl, 2(%eax)
603603
; X86-NEXT: movzbl {{[-0-9]+}}(%e{{[sb]}}p), %ecx # 1-byte Folded Reload

0 commit comments

Comments
 (0)