Mercurial > hg > CbC > CbC_llvm
view test/Transforms/DeadArgElim/deadexternal.ll @ 100:7d135dc70f03 LLVM 3.9
LLVM 3.9
author | Miyagi Mitsuki <e135756@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 26 Jan 2016 22:53:40 +0900 |
parents | afa8332a0e37 |
children | 1172e4bd9c6f |
line wrap: on
line source
; RUN: opt -deadargelim -S < %s | FileCheck %s define void @test(i32) { ret void } define void @foo() { call void @test(i32 0) ret void ; CHECK-LABEL: @foo( ; CHECK: i32 undef } define void @f(i32 %X) { entry: tail call void @sideeffect() nounwind ret void } declare void @sideeffect() define void @g(i32 %n) { entry: %add = add nsw i32 %n, 1 ; CHECK: tail call void @f(i32 undef) tail call void @f(i32 %add) ret void } define void @h() { entry: %i = alloca i32, align 4 store volatile i32 10, i32* %i, align 4 ; CHECK: %tmp = load volatile i32, i32* %i, align 4 ; CHECK-NEXT: call void @f(i32 undef) %tmp = load volatile i32, i32* %i, align 4 call void @f(i32 %tmp) ret void } ; Check that callers are not transformed for weak definitions. define weak i32 @weak_f(i32 %x) nounwind { entry: ret i32 0 } define void @weak_f_caller() nounwind { entry: ; CHECK: call i32 @weak_f(i32 10) %call = tail call i32 @weak_f(i32 10) ret void }