[llvm-branch-commits] [llvm-branch] r332928 - Merge r322521 - just regenerates the CHECK lines using the script. Will allow
Chandler Carruth via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon May 21 19:02:03 PDT 2018
Author: chandlerc
Date: Mon May 21 19:02:03 2018
New Revision: 332928
URL: http://llvm.org/viewvc/llvm-project?rev=332928&view=rev
Log:
Merge r322521 - just regenerates the CHECK lines using the script. Will allow
subsequent cherrypicks to be much cleaner.
Modified:
llvm/branches/release_60/ (props changed)
llvm/branches/release_60/test/CodeGen/X86/win64_frame.ll
Propchange: llvm/branches/release_60/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon May 21 19:02:03 2018
@@ -1,3 +1,3 @@
/llvm/branches/Apple/Pertwee:110850,110961
/llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,321751,321789,321791,321806,321862,321870,321872,321878,321911,321980,321991,321993-321994,322003,322016,322053,322056,322103,322106,322108,322123,322131,322223,322272,322313,322372,322473,322623,322644,322724,322767,322875,322878-322879,322900,322904-322905,322973,322993,323034,323155,323190,323307,323331,323355,323369,323371,323384,323469,323515,323536,323582,323643,323671-323672,323706,323710,323759,323781,323810-323811,323813,323857,323907-323909,323913,323915,324002,324039,324110,324195,324353,324422,324449,324497,324576,324645,324746,324772,324916,324962,325049,325085,325139,325148,325168,325463,325525,325550,325654,325687,325739,325894,325946,326393,329040,329055-329057
+/llvm/trunk:155241,321751,321789,321791,321806,321862,321870,321872,321878,321911,321980,321991,321993-321994,322003,322016,322053,322056,322103,322106,322108,322123,322131,322223,322272,322313,322372,322473,322521,322623,322644,322724,322767,322875,322878-322879,322900,322904-322905,322973,322993,323034,323155,323190,323307,323331,323355,323369,323371,323384,323469,323515,323536,323582,323643,323671-323672,323706,323710,323759,323781,323810-323811,323813,323857,323907-323909,323913,323915,324002,324039,324110,324195,324353,324422,324449,324497,324576,324645,324746,324772,324916,324962,325049,325085,325139,325148,325168,325463,325525,325550,325654,325687,325739,325894,325946,326393,329040,329055-329057
Modified: llvm/branches/release_60/test/CodeGen/X86/win64_frame.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_60/test/CodeGen/X86/win64_frame.ll?rev=332928&r1=332927&r2=332928&view=diff
==============================================================================
--- llvm/branches/release_60/test/CodeGen/X86/win64_frame.ll (original)
+++ llvm/branches/release_60/test/CodeGen/X86/win64_frame.ll Mon May 21 19:02:03 2018
@@ -1,43 +1,85 @@
-; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck %s --check-prefix=CHECK --check-prefix=PUSHF
-; RUN: llc < %s -mtriple=x86_64-pc-win32 -mattr=+sahf | FileCheck %s --check-prefix=SAHF
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc < %s -mtriple=x86_64-pc-win32 | FileCheck %s --check-prefix=ALL --check-prefix=PUSHF
+; RUN: llc < %s -mtriple=x86_64-pc-win32 -mattr=+sahf | FileCheck %s --check-prefix=ALL --check-prefix=SAHF
define i32 @f1(i32 %p1, i32 %p2, i32 %p3, i32 %p4, i32 %p5) "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f1:
- ; CHECK: movl 48(%rbp), %eax
+; ALL-LABEL: f1:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: movq %rsp, %rbp
+; ALL-NEXT: .seh_setframe 5, 0
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: movl 48(%rbp), %eax
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
ret i32 %p5
}
define void @f2(i32 %p, ...) "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f2:
- ; CHECK: .seh_stackalloc 8
- ; CHECK: movq %rsp, %rbp
- ; CHECK: .seh_setframe 5, 0
- ; CHECK: movq %rdx, 32(%rbp)
- ; CHECK: leaq 32(%rbp), %rax
+; ALL-LABEL: f2:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: pushq %rax
+; ALL-NEXT: .seh_stackalloc 8
+; ALL-NEXT: movq %rsp, %rbp
+; ALL-NEXT: .seh_setframe 5, 0
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: movq %r9, 48(%rbp)
+; ALL-NEXT: movq %r8, 40(%rbp)
+; ALL-NEXT: movq %rdx, 32(%rbp)
+; ALL-NEXT: leaq 32(%rbp), %rax
+; ALL-NEXT: movq %rax, (%rbp)
+; ALL-NEXT: addq $8, %rsp
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
%ap = alloca i8, align 8
call void @llvm.va_start(i8* %ap)
ret void
}
define i8* @f3() "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f3:
- ; CHECK: movq %rsp, %rbp
- ; CHECK: .seh_setframe 5, 0
- ; CHECK: movq 8(%rbp), %rax
+; ALL-LABEL: f3:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: movq %rsp, %rbp
+; ALL-NEXT: .seh_setframe 5, 0
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: movq 8(%rbp), %rax
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
%ra = call i8* @llvm.returnaddress(i32 0)
ret i8* %ra
}
define i8* @f4() "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f4:
- ; CHECK: pushq %rbp
- ; CHECK: .seh_pushreg 5
- ; CHECK: subq $304, %rsp
- ; CHECK: .seh_stackalloc 304
- ; CHECK: leaq 128(%rsp), %rbp
- ; CHECK: .seh_setframe 5, 128
- ; CHECK: .seh_endprologue
- ; CHECK: movq 184(%rbp), %rax
+; ALL-LABEL: f4:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: subq $304, %rsp # imm = 0x130
+; ALL-NEXT: .seh_stackalloc 304
+; ALL-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; ALL-NEXT: .seh_setframe 5, 128
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: movq 184(%rbp), %rax
+; ALL-NEXT: addq $304, %rsp # imm = 0x130
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
alloca [300 x i8]
%ra = call i8* @llvm.returnaddress(i32 0)
ret i8* %ra
@@ -46,13 +88,24 @@ define i8* @f4() "no-frame-pointer-elim"
declare void @external(i8*)
define void @f5() "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f5:
- ; CHECK: subq $336, %rsp
- ; CHECK: .seh_stackalloc 336
- ; CHECK: leaq 128(%rsp), %rbp
- ; CHECK: .seh_setframe 5, 128
- ; CHECK: leaq -92(%rbp), %rcx
- ; CHECK: callq external
+; ALL-LABEL: f5:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: subq $336, %rsp # imm = 0x150
+; ALL-NEXT: .seh_stackalloc 336
+; ALL-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; ALL-NEXT: .seh_setframe 5, 128
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: leaq -92(%rbp), %rcx
+; ALL-NEXT: callq external
+; ALL-NEXT: nop
+; ALL-NEXT: addq $336, %rsp # imm = 0x150
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
%a = alloca [300 x i8]
%gep = getelementptr [300 x i8], [300 x i8]* %a, i32 0, i32 0
call void @external(i8* %gep)
@@ -60,13 +113,24 @@ define void @f5() "no-frame-pointer-elim
}
define void @f6(i32 %p, ...) "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f6:
- ; CHECK: subq $336, %rsp
- ; CHECK: .seh_stackalloc 336
- ; CHECK: leaq 128(%rsp), %rbp
- ; CHECK: .seh_setframe 5, 128
- ; CHECK: leaq -92(%rbp), %rcx
- ; CHECK: callq external
+; ALL-LABEL: f6:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: subq $336, %rsp # imm = 0x150
+; ALL-NEXT: .seh_stackalloc 336
+; ALL-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; ALL-NEXT: .seh_setframe 5, 128
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: leaq -92(%rbp), %rcx
+; ALL-NEXT: callq external
+; ALL-NEXT: nop
+; ALL-NEXT: addq $336, %rsp # imm = 0x150
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
%a = alloca [300 x i8]
%gep = getelementptr [300 x i8], [300 x i8]* %a, i32 0, i32 0
call void @external(i8* %gep)
@@ -74,130 +138,189 @@ define void @f6(i32 %p, ...) "no-frame-p
}
define i32 @f7(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f7:
- ; CHECK: pushq %rbp
- ; CHECK: .seh_pushreg 5
- ; CHECK: subq $304, %rsp
- ; CHECK: .seh_stackalloc 304
- ; CHECK: leaq 128(%rsp), %rbp
- ; CHECK: .seh_setframe 5, 128
- ; CHECK: andq $-64, %rsp
- ; CHECK: movl 224(%rbp), %eax
- ; CHECK: leaq 176(%rbp), %rsp
+; ALL-LABEL: f7:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: subq $304, %rsp # imm = 0x130
+; ALL-NEXT: .seh_stackalloc 304
+; ALL-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; ALL-NEXT: .seh_setframe 5, 128
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: andq $-64, %rsp
+; ALL-NEXT: movl 224(%rbp), %eax
+; ALL-NEXT: leaq 176(%rbp), %rsp
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
alloca [300 x i8], align 64
ret i32 %e
}
define i32 @f8(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f8:
- ; CHECK: subq $352, %rsp
- ; CHECK: .seh_stackalloc 352
- ; CHECK: leaq 128(%rsp), %rbp
- ; CHECK: .seh_setframe 5, 128
-
+; ALL-LABEL: f8:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: pushq %rsi
+; ALL-NEXT: .seh_pushreg 6
+; ALL-NEXT: pushq %rbx
+; ALL-NEXT: .seh_pushreg 3
+; ALL-NEXT: subq $352, %rsp # imm = 0x160
+; ALL-NEXT: .seh_stackalloc 352
+; ALL-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; ALL-NEXT: .seh_setframe 5, 128
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: andq $-64, %rsp
+; ALL-NEXT: movq %rsp, %rbx
+; ALL-NEXT: movl 288(%rbp), %esi
+; ALL-NEXT: movl %ecx, %eax
+; ALL-NEXT: leaq 15(,%rax,4), %rcx
+; ALL-NEXT: movabsq $34359738352, %rax # imm = 0x7FFFFFFF0
+; ALL-NEXT: andq %rcx, %rax
+; ALL-NEXT: callq __chkstk
+; ALL-NEXT: subq %rax, %rsp
+; ALL-NEXT: subq $32, %rsp
+; ALL-NEXT: movq %rbx, %rcx
+; ALL-NEXT: callq external
+; ALL-NEXT: addq $32, %rsp
+; ALL-NEXT: movl %esi, %eax
+; ALL-NEXT: leaq 224(%rbp), %rsp
+; ALL-NEXT: popq %rbx
+; ALL-NEXT: popq %rsi
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
%alloca = alloca [300 x i8], align 64
- ; CHECK: andq $-64, %rsp
- ; CHECK: movq %rsp, %rbx
-
alloca i32, i32 %a
- ; CHECK: movl %ecx, %eax
- ; CHECK: leaq 15(,%rax,4), %rcx
- ; CHECK: movabsq $34359738352, %rax
- ; CHECK: andq %rcx, %rax
- ; CHECK: callq __chkstk
- ; CHECK: subq %rax, %rsp
-
%gep = getelementptr [300 x i8], [300 x i8]* %alloca, i32 0, i32 0
call void @external(i8* %gep)
- ; CHECK: subq $32, %rsp
- ; CHECK: movq %rbx, %rcx
- ; CHECK: callq external
- ; CHECK: addq $32, %rsp
-
ret i32 %e
- ; CHECK: movl %esi, %eax
- ; CHECK: leaq 224(%rbp), %rsp
}
define i64 @f9() {
+; ALL-LABEL: f9:
+; ALL: # %bb.0: # %entry
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: movq %rsp, %rbp
+; ALL-NEXT: .seh_setframe 5, 0
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: pushfq
+; ALL-NEXT: popq %rax
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
entry:
- ; CHECK-LABEL: f9:
- ; CHECK: pushq %rbp
- ; CHECK: .seh_pushreg 5
- ; CHECK-NEXT: movq %rsp, %rbp
- ; CHECK: .seh_setframe 5, 0
- ; CHECK: .seh_endprologue
-
%call = call i64 @llvm.x86.flags.read.u64()
- ; CHECK-NEXT: pushfq
- ; CHECK-NEXT: popq %rax
-
ret i64 %call
- ; CHECK-NEXT: popq %rbp
- ; CHECK-NEXT: retq
}
declare i64 @dummy()
define i64 @f10(i64* %foo, i64 %bar, i64 %baz) {
- ; CHECK-LABEL: f10:
- ; CHECK: pushq %rbp
- ; CHECK: .seh_pushreg 5
- ; CHECK: pushq %rsi
- ; CHECK: .seh_pushreg 6
- ; CHECK: pushq %rdi
- ; CHECK: .seh_pushreg 7
- ; CHECK: subq $32, %rsp
- ; CHECK: .seh_stackalloc 32
- ; CHECK: leaq 32(%rsp), %rbp
- ; CHECK: .seh_setframe 5, 32
- ; CHECK: .seh_endprologue
-
+; PUSHF-LABEL: f10:
+; PUSHF: # %bb.0:
+; PUSHF-NEXT: pushq %rbp
+; PUSHF-NEXT: .seh_pushreg 5
+; PUSHF-NEXT: pushq %rsi
+; PUSHF-NEXT: .seh_pushreg 6
+; PUSHF-NEXT: pushq %rdi
+; PUSHF-NEXT: .seh_pushreg 7
+; PUSHF-NEXT: subq $32, %rsp
+; PUSHF-NEXT: .seh_stackalloc 32
+; PUSHF-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; PUSHF-NEXT: .seh_setframe 5, 32
+; PUSHF-NEXT: .seh_endprologue
+; PUSHF-NEXT: movq %rdx, %rsi
+; PUSHF-NEXT: movq %rsi, %rax
+; PUSHF-NEXT: lock cmpxchgq %r8, (%rcx)
+; PUSHF-NEXT: pushfq
+; PUSHF-NEXT: popq %rdi
+; PUSHF-NEXT: callq dummy
+; PUSHF-NEXT: pushq %rdi
+; PUSHF-NEXT: popfq
+; PUSHF-NEXT: cmovneq %rsi, %rax
+; PUSHF-NEXT: addq $32, %rsp
+; PUSHF-NEXT: popq %rdi
+; PUSHF-NEXT: popq %rsi
+; PUSHF-NEXT: popq %rbp
+; PUSHF-NEXT: retq
+; PUSHF-NEXT: .seh_handlerdata
+; PUSHF-NEXT: .text
+; PUSHF-NEXT: .seh_endproc
+;
+; SAHF-LABEL: f10:
+; SAHF: # %bb.0:
+; SAHF-NEXT: pushq %rbp
+; SAHF-NEXT: .seh_pushreg 5
+; SAHF-NEXT: pushq %rsi
+; SAHF-NEXT: .seh_pushreg 6
+; SAHF-NEXT: pushq %rdi
+; SAHF-NEXT: .seh_pushreg 7
+; SAHF-NEXT: subq $32, %rsp
+; SAHF-NEXT: .seh_stackalloc 32
+; SAHF-NEXT: leaq {{[0-9]+}}(%rsp), %rbp
+; SAHF-NEXT: .seh_setframe 5, 32
+; SAHF-NEXT: .seh_endprologue
+; SAHF-NEXT: movq %rdx, %rsi
+; SAHF-NEXT: movq %rsi, %rax
+; SAHF-NEXT: lock cmpxchgq %r8, (%rcx)
+; SAHF-NEXT: seto %al
+; SAHF-NEXT: lahf
+; SAHF-NEXT: movq %rax, %rdi
+; SAHF-NEXT: callq dummy
+; SAHF-NEXT: pushq %rax
+; SAHF-NEXT: movq %rdi, %rax
+; SAHF-NEXT: addb $127, %al
+; SAHF-NEXT: sahf
+; SAHF-NEXT: popq %rax
+; SAHF-NEXT: cmovneq %rsi, %rax
+; SAHF-NEXT: addq $32, %rsp
+; SAHF-NEXT: popq %rdi
+; SAHF-NEXT: popq %rsi
+; SAHF-NEXT: popq %rbp
+; SAHF-NEXT: retq
+; SAHF-NEXT: .seh_handlerdata
+; SAHF-NEXT: .text
+; SAHF-NEXT: .seh_endproc
%cx = cmpxchg i64* %foo, i64 %bar, i64 %baz seq_cst seq_cst
- ; PUSHF: lock cmpxchgq
- ; PUSHF-NEXT: pushfq
- ; PUSHF-NEXT: popq %[[REG:.*]]
- ; SAHF: lock cmpxchgq
- ; SAHF-NEXT: seto %al
- ; SAHF-NEXT: lahf
-
%v = extractvalue { i64, i1 } %cx, 0
%p = extractvalue { i64, i1 } %cx, 1
-
%call = call i64 @dummy()
- ; PUSHF: callq dummy
- ; PUSHF-NEXT: pushq %[[REG]]
- ; PUSHF-NEXT: popfq
- ; SAHF: callq dummy
- ; SAHF-NEXT: pushq
- ; SAHF: addb $127, %al
- ; SAHF-NEXT: sahf
- ; SAHF-NEXT: popq
-
%sel = select i1 %p, i64 %call, i64 %bar
- ; CHECK-NEXT: cmovneq
-
ret i64 %sel
- ; CHECK-NEXT: addq $32, %rsp
- ; CHECK-NEXT: popq %rdi
- ; CHECK-NEXT: popq %rsi
- ; CHECK-NEXT: popq %rbp
}
define i8* @f11() "no-frame-pointer-elim"="true" {
- ; CHECK-LABEL: f11:
- ; CHECK: pushq %rbp
- ; CHECK: movq %rsp, %rbp
- ; CHECK: .seh_setframe 5, 0
- ; CHECK: leaq 8(%rbp), %rax
+; ALL-LABEL: f11:
+; ALL: # %bb.0:
+; ALL-NEXT: pushq %rbp
+; ALL-NEXT: .seh_pushreg 5
+; ALL-NEXT: movq %rsp, %rbp
+; ALL-NEXT: .seh_setframe 5, 0
+; ALL-NEXT: .seh_endprologue
+; ALL-NEXT: leaq 8(%rbp), %rax
+; ALL-NEXT: popq %rbp
+; ALL-NEXT: retq
+; ALL-NEXT: .seh_handlerdata
+; ALL-NEXT: .text
+; ALL-NEXT: .seh_endproc
%aora = call i8* @llvm.addressofreturnaddress()
ret i8* %aora
}
define i8* @f12() {
- ; CHECK-LABEL: f12:
- ; CHECK-NOT: push
- ; CHECK: movq %rsp, %rax
+; ALL-LABEL: f12:
+; ALL: # %bb.0:
+; ALL-NEXT: movq %rsp, %rax
+; ALL-NEXT: retq
%aora = call i8* @llvm.addressofreturnaddress()
ret i8* %aora
}
@@ -205,5 +328,4 @@ define i8* @f12() {
declare i8* @llvm.returnaddress(i32) nounwind readnone
declare i8* @llvm.addressofreturnaddress() nounwind readnone
declare i64 @llvm.x86.flags.read.u64()
-
declare void @llvm.va_start(i8*) nounwind
More information about the llvm-branch-commits
mailing list