Mercurial > hg > CbC > CbC_llvm
comparison test/Analysis/BasicAA/dag.ll @ 0:95c75e76d11b LLVM3.4
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children | afa8332a0e37 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
1 ; RUN: opt < %s -basicaa -aa-eval -print-all-alias-modref-info 2>&1 | FileCheck %s | |
2 | |
3 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64" | |
4 | |
5 ; BasicAA's guard against use-def cycles shouldn't prevent it from | |
6 ; analyzing use-def dags. | |
7 | |
8 ; CHECK: MustAlias: i8* %base, i8* %phi | |
9 ; CHECK: MustAlias: i8* %phi, i8* %wwa | |
10 ; CHECK: MustAlias: i8* %phi, i8* %wwb | |
11 ; CHECK: MustAlias: i16* %bigbase, i8* %phi | |
12 define i8 @foo(i8* %base, i1 %x, i1 %w) { | |
13 entry: | |
14 br i1 %w, label %wa, label %wb | |
15 wa: | |
16 %wwa = bitcast i8* %base to i8* | |
17 br label %wc | |
18 wb: | |
19 %wwb = bitcast i8* %base to i8* | |
20 br label %wc | |
21 wc: | |
22 %first = phi i8* [ %wwa, %wa ], [ %wwb, %wb ] | |
23 %fc = bitcast i8* %first to i8* | |
24 br i1 %x, label %xa, label %xb | |
25 xa: | |
26 %xxa = bitcast i8* %fc to i8* | |
27 br label %xc | |
28 xb: | |
29 %xxb = bitcast i8* %fc to i8* | |
30 br label %xc | |
31 xc: | |
32 %phi = phi i8* [ %xxa, %xa ], [ %xxb, %xb ] | |
33 | |
34 store i8 0, i8* %phi | |
35 | |
36 %bigbase = bitcast i8* %base to i16* | |
37 store i16 -1, i16* %bigbase | |
38 | |
39 %loaded = load i8* %phi | |
40 ret i8 %loaded | |
41 } |