Mercurial > hg > CbC > CbC_llvm
view test/CodeGen/Hexagon/avoid-predspill-calleesaved.ll @ 146:3fc4d5c3e21e
set tail call flag for code segment in CGCAll
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 23 Dec 2018 19:23:36 +0900 |
parents | 803732b1fca8 |
children | c2174574ed3a |
line wrap: on
line source
; Check that a callee-saved register will be saved correctly if ; the predicate-to-GPR spilling code uses it. ; ; RUN: llc -march=hexagon < %s | FileCheck %s ; ; We expect to spill p0 into a general-purpose register and keep it there, ; without adding an extra spill of that register. ; ; CHECK: PredSpill: ; CHECK-DAG: r{{[0-9]+}} = p0 ; CHECK-DAG: p0 = r{{[0-9]+}} ; CHECK-NOT: = memw(r29 ; define void @PredSpill() { entry: br i1 undef, label %if.then, label %if.else.14 if.then: ; preds = %entry br i1 undef, label %if.end.57, label %if.else if.else: ; preds = %if.then unreachable if.else.14: ; preds = %entry br i1 undef, label %if.then.17, label %if.end.57 if.then.17: ; preds = %if.else.14 br i1 undef, label %if.end.57, label %if.then.20 if.then.20: ; preds = %if.then.17 %call21 = tail call i32 @myfun() %tobool22 = icmp eq i32 %call21, 0 %0 = tail call i32 @myfun() br i1 %tobool22, label %if.else.42, label %if.then.23 if.then.23: ; preds = %if.then.20 unreachable if.else.42: ; preds = %if.then.20 ret void if.end.57: ; preds = %if.then.17, %if.else.14, %if.then ret void } declare i32 @myfun()