reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
   65
   66
   67
   68
   69
   70
   71
   72
   73
   74
   75
   76
   77
   78
   79
   80
   81
   82
   83
   84
   85
   86
   87
   88
   89
   90
   91
   92
   93
   94
   95
   96
   97
   98
   99
  100
  101
  102
  103
  104
  105
  106
  107
  108
  109
  110
  111
  112
  113
  114
  115
  116
  117
  118
  119
  120
  121
  122
  123
  124
  125
  126
  127
  128
  129
  130
  131
  132
  133
  134
  135
  136
  137
  138
  139
  140
  141
  142
  143
  144
  145
  146
  147
  148
  149
  150
  151
  152
  153
  154
  155
  156
  157
  158
  159
  160
  161
  162
  163
  164
  165
  166
  167
  168
  169
  170
  171
  172
  173
  174
  175
  176
  177
  178
  179
  180
  181
  182
; RUN: opt -loop-deletion -disable-output < %s

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"

%0 = type { %"class.llvm::SmallVectorImpl", [1 x %"union.llvm::SmallVectorBase::U"] }
%"class.clang::SourceLocation" = type { i32 }
%"class.clang::driver::Arg" = type { %"class.clang::driver::Option"*, %"class.clang::driver::Arg"*, i32, i8, %0 }
%"class.clang::driver::Option" = type { i32 (...)**, i32, %"class.clang::SourceLocation", i8*, %"class.clang::driver::OptionGroup"*, %"class.clang::driver::Option"*, i8 }
%"class.clang::driver::OptionGroup" = type { %"class.clang::driver::Option" }
%"class.llvm::SmallVectorBase" = type { i8*, i8*, i8*, %"union.llvm::SmallVectorBase::U" }
%"class.llvm::SmallVectorImpl" = type { %"class.llvm::SmallVectorTemplateBase" }
%"class.llvm::SmallVectorTemplateBase" = type { %"class.llvm::SmallVectorTemplateCommon" }
%"class.llvm::SmallVectorTemplateCommon" = type { %"class.llvm::SmallVectorBase" }
%"union.llvm::SmallVectorBase::U" = type { x86_fp80 }

define void @_ZNK5clang6driver7ArgList20AddAllArgsTranslatedERN4llvm11SmallVectorIPKcLj16EEENS0_12OptSpecifierES5_b(i1 zeroext %Joined) nounwind align 2 {
entry:
  br i1 undef, label %entry.split.us, label %entry.entry.split_crit_edge

entry.entry.split_crit_edge:                      ; preds = %entry
  br label %entry.split

entry.split.us:                                   ; preds = %entry
  br label %for.cond.i14.us

for.cond.i14.us:                                  ; preds = %for.inc.i38.us, %entry.split.us
  br i1 true, label %for.cond.i50.us-lcssa.us, label %if.end.i23.us

for.inc.i38.us:                                   ; preds = %if.end.i23.us
  br label %for.cond.i14.us

if.end.i23.us:                                    ; preds = %for.cond.i14.us
  br i1 true, label %for.cond.i50.us-lcssa.us, label %for.inc.i38.us

for.cond.i50.us-lcssa.us:                         ; preds = %if.end.i23.us, %for.cond.i14.us
  br label %for.cond.i50

entry.split:                                      ; preds = %entry.entry.split_crit_edge
  br label %for.cond.i14

for.cond.i14:                                     ; preds = %for.inc.i38, %entry.split
  br i1 undef, label %for.cond.i50.us-lcssa, label %if.end.i23

if.end.i23:                                       ; preds = %for.cond.i14
  br i1 undef, label %for.cond.i50.us-lcssa, label %for.inc.i38

for.inc.i38:                                      ; preds = %if.end.i23
  br label %for.cond.i14

for.cond.i50.us-lcssa:                            ; preds = %if.end.i23, %for.cond.i14
  br label %for.cond.i50

for.cond.i50:                                     ; preds = %for.cond.i50.us-lcssa, %for.cond.i50.us-lcssa.us
  br label %for.cond

for.cond.loopexit.us-lcssa:                       ; preds = %if.end.i, %for.cond.i
  br label %for.cond.loopexit

for.cond.loopexit:                                ; preds = %for.cond.loopexit.us-lcssa.us, %for.cond.loopexit.us-lcssa
  br label %for.cond

for.cond:                                         ; preds = %for.cond.loopexit, %for.cond.i50
  br i1 undef, label %for.end, label %for.body

for.body:                                         ; preds = %for.cond
  br i1 %Joined, label %if.then, label %if.else

if.then:                                          ; preds = %for.body
  br i1 undef, label %cond.false.i.i, label %_ZN4llvm9StringRefC1EPKc.exit

cond.false.i.i:                                   ; preds = %if.then
  unreachable

_ZN4llvm9StringRefC1EPKc.exit:                    ; preds = %if.then
  br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit, label %cond.false.i.i91

cond.false.i.i91:                                 ; preds = %_ZN4llvm9StringRefC1EPKc.exit
  unreachable

_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit: ; preds = %_ZN4llvm9StringRefC1EPKc.exit
  br i1 undef, label %cond.false.i.i.i, label %if.end13.i.i.i.i

if.end13.i.i.i.i:                                 ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
  br i1 undef, label %land.lhs.true16.i.i.i.i, label %if.end19.i.i.i.i

land.lhs.true16.i.i.i.i:                          ; preds = %if.end13.i.i.i.i
  br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i

_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i:         ; preds = %land.lhs.true16.i.i.i.i
  br i1 undef, label %cond.false.i.i.i, label %if.end19.i.i.i.i

if.end19.i.i.i.i:                                 ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %if.end13.i.i.i.i
  br i1 undef, label %land.lhs.true22.i.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit

land.lhs.true22.i.i.i.i:                          ; preds = %if.end19.i.i.i.i
  br i1 undef, label %cond.false.i.i.i, label %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i

_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i:          ; preds = %land.lhs.true22.i.i.i.i
  br i1 undef, label %cond.false.i.i.i, label %_ZN4llvmplERKNS_9StringRefEPKc.exit

cond.false.i.i.i:                                 ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %land.lhs.true22.i.i.i.i, %_ZNK4llvm5Twine8isBinaryEv.exit8.i.i.i.i, %land.lhs.true16.i.i.i.i, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit
  unreachable

_ZN4llvmplERKNS_9StringRefEPKc.exit:              ; preds = %_ZNK4llvm5Twine8isBinaryEv.exit.i.i.i.i, %if.end19.i.i.i.i
  br i1 undef, label %Retry.i, label %if.end.i99

Retry.i:                                          ; preds = %if.end.i99, %_ZN4llvmplERKNS_9StringRefEPKc.exit
  br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit, label %new.notnull.i

new.notnull.i:                                    ; preds = %Retry.i
  br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit

if.end.i99:                                       ; preds = %_ZN4llvmplERKNS_9StringRefEPKc.exit
  br label %Retry.i

_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit: ; preds = %new.notnull.i, %Retry.i
  br label %for.cond.i.preheader

if.else:                                          ; preds = %for.body
  br i1 undef, label %Retry.i108, label %if.end.i113

Retry.i108:                                       ; preds = %if.end.i113, %if.else
  br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114, label %new.notnull.i110

new.notnull.i110:                                 ; preds = %Retry.i108
  br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114

if.end.i113:                                      ; preds = %if.else
  br label %Retry.i108

_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114: ; preds = %new.notnull.i110, %Retry.i108
  br i1 undef, label %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125, label %cond.false.i.i123

cond.false.i.i123:                                ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
  unreachable

_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125: ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit114
  br i1 undef, label %Retry.i134, label %if.end.i139

Retry.i134:                                       ; preds = %if.end.i139, %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
  br i1 undef, label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, label %new.notnull.i136

new.notnull.i136:                                 ; preds = %Retry.i134
  br label %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140

if.end.i139:                                      ; preds = %_ZNK5clang6driver3Arg8getValueERKNS0_7ArgListEj.exit125
  br label %Retry.i134

_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140: ; preds = %new.notnull.i136, %Retry.i134
  br label %for.cond.i.preheader

for.cond.i.preheader:                             ; preds = %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit140, %_ZN4llvm15SmallVectorImplIPKcE9push_backERKS2_.exit
  br i1 undef, label %for.cond.i.preheader.split.us, label %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge

for.cond.i.preheader.for.cond.i.preheader.split_crit_edge: ; preds = %for.cond.i.preheader
  br label %for.cond.i.preheader.split

for.cond.i.preheader.split.us:                    ; preds = %for.cond.i.preheader
  br label %for.cond.i.us

for.cond.i.us:                                    ; preds = %if.end.i.us, %for.cond.i.preheader.split.us
  br i1 true, label %for.cond.loopexit.us-lcssa.us, label %if.end.i.us

if.end.i.us:                                      ; preds = %for.cond.i.us
  br i1 true, label %for.cond.loopexit.us-lcssa.us, label %for.cond.i.us

for.cond.loopexit.us-lcssa.us:                    ; preds = %if.end.i.us, %for.cond.i.us
  %tmp178218.us.lcssa = phi %"class.clang::driver::Arg"** [ undef, %if.end.i.us ], [ undef, %for.cond.i.us ]
  br label %for.cond.loopexit

for.cond.i.preheader.split:                       ; preds = %for.cond.i.preheader.for.cond.i.preheader.split_crit_edge
  br label %for.cond.i

for.cond.i:                                       ; preds = %if.end.i, %for.cond.i.preheader.split
  br i1 undef, label %for.cond.loopexit.us-lcssa, label %if.end.i

if.end.i:                                         ; preds = %for.cond.i
  br i1 undef, label %for.cond.loopexit.us-lcssa, label %for.cond.i

for.end:                                          ; preds = %for.cond
  ret void
}