forked from OSchip/llvm-project
[SystemZ] Define MaxInstLength to have the value of 6.
This value had the default value of 4 which caused branch relaxation to fail. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D90065
This commit is contained in:
parent
d96cb52830
commit
7c026a83ee
|
@ -17,6 +17,8 @@ SystemZMCAsmInfo::SystemZMCAsmInfo(const Triple &TT) {
|
|||
CalleeSaveStackSlotSize = 8;
|
||||
IsLittleEndian = false;
|
||||
|
||||
MaxInstLength = 6;
|
||||
|
||||
CommentString = "#";
|
||||
ZeroDirective = "\t.space\t";
|
||||
Data64bitsDirective = "\t.quad\t";
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
# Test that inline assembly get the right size value so that a branch across
|
||||
# a block containing them gets relaxed.
|
||||
|
||||
# RUN: python %s | llc -mtriple=s390x-linux-gnu -mcpu=z196 -enable-post-misched=false \
|
||||
# RUN: | FileCheck %s
|
||||
|
||||
# Construct:
|
||||
#
|
||||
# entry:
|
||||
# branch to block
|
||||
#
|
||||
# block:
|
||||
# sequence of call asm
|
||||
# unconditional branch to block
|
||||
#
|
||||
# exit:
|
||||
# ret void
|
||||
|
||||
# CHECK-LABEL: f1
|
||||
# CHECK: jg
|
||||
# CHECK-NEXT: .Lfunc_end0:
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
num = 11000
|
||||
|
||||
print('define void @f1() {')
|
||||
print('entry:')
|
||||
print(' br label %block')
|
||||
print('')
|
||||
print('block:')
|
||||
|
||||
for i in range(num):
|
||||
print(' tail call i64 asm "lang\\09$0,$2,$1\\0A", "=d,=*Q,d,*Q"(i32* undef, i32 undef, i32* undef)')
|
||||
|
||||
print(' br label %block')
|
||||
|
||||
print('')
|
||||
print('exit:')
|
||||
print(' ret void')
|
||||
print('}')
|
Loading…
Reference in New Issue