41 lines · plain
1; RUN: llc < %s -mtriple=x86_64-- | FileCheck %s --check-prefix=NO-OPTION2; RUN: llc < %s -mtriple=x86_64-- -disable-tail-calls | FileCheck %s --check-prefix=DISABLE-TRUE3; RUN: llc < %s -mtriple=x86_64-- -disable-tail-calls=false | FileCheck %s --check-prefix=DISABLE-FALSE4 5; Check that command line option "-disable-tail-calls" overrides function6; attribute "disable-tail-calls".7 8; NO-OPTION-LABEL: {{\_?}}func_attr9; NO-OPTION: callq {{\_?}}callee10 11; DISABLE-FALSE-LABEL: {{\_?}}func_attr12; DISABLE-FALSE: jmp {{\_?}}callee13 14; DISABLE-TRUE-LABEL: {{\_?}}func_attr15; DISABLE-TRUE: callq {{\_?}}callee16 17define tailcc i32 @func_attr(i32 %a) #0 {18entry:19 %call = tail call tailcc i32 @callee(i32 %a)20 ret i32 %call21}22 23; NO-OPTION-LABEL: {{\_?}}func_noattr24; NO-OPTION: jmp {{\_?}}callee25 26; DISABLE-FALSE-LABEL: {{\_?}}func_noattr27; DISABLE-FALSE: jmp {{\_?}}callee28 29; DISABLE-TRUE-LABEL: {{\_?}}func_noattr30; DISABLE-TRUE: callq {{\_?}}callee31 32define tailcc i32 @func_noattr(i32 %a) {33entry:34 %call = tail call tailcc i32 @callee(i32 %a)35 ret i32 %call36}37 38declare tailcc i32 @callee(i32)39 40attributes #0 = { "disable-tail-calls"="true" }41