llvm.org GIT mirror llvm / 1ef70ff
IR: Make metadata typeless in assembly Now that `Metadata` is typeless, reflect that in the assembly. These are the matching assembly changes for the metadata/value split in r223802. - Only use the `metadata` type when referencing metadata from a call intrinsic -- i.e., only when it's used as a `Value`. - Stop pretending that `ValueAsMetadata` is wrapped in an `MDNode` when referencing it from call intrinsics. So, assembly like this: define @foo(i32 %v) { call void @llvm.foo(metadata !{i32 %v}, metadata !0) call void @llvm.foo(metadata !{i32 7}, metadata !0) call void @llvm.foo(metadata !1, metadata !0) call void @llvm.foo(metadata !3, metadata !0) call void @llvm.foo(metadata !{metadata !3}, metadata !0) ret void, !bar !2 } !0 = metadata !{metadata !2} !1 = metadata !{i32* @global} !2 = metadata !{metadata !3} !3 = metadata !{} turns into this: define @foo(i32 %v) { call void @llvm.foo(metadata i32 %v, metadata !0) call void @llvm.foo(metadata i32 7, metadata !0) call void @llvm.foo(metadata i32* @global, metadata !0) call void @llvm.foo(metadata !3, metadata !0) call void @llvm.foo(metadata !{!3}, metadata !0) ret void, !bar !2 } !0 = !{!2} !1 = !{i32* @global} !2 = !{!3} !3 = !{} I wrote an upgrade script that handled almost all of the tests in llvm and many of the tests in cfe (even handling many `CHECK` lines). I've attached it (or will attach it in a moment if you're speedy) to PR21532 to help everyone update their out-of-tree testcases. This is part of PR21532. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224257 91177308-0d34-0410-b5e6-96231b3b80d8 Duncan P. N. Exon Smith 4 years ago
703 changed file(s) with 11819 addition(s) and 11799 deletion(s). Raw diff Collapse all Expand all
169169 }
170170
171171 ; Named metadata
172 !0 = metadata !{i32 42, null, metadata !"string"}
172 !0 = !{i32 42, null, !"string"}
173173 !foo = !{!0}
174174
175175 This example is made up of a :ref:`global variable ` named
826826 Syntax::
827827
828828 ; Some unnamed metadata nodes, which are referenced by the named metadata.
829 !0 = metadata !{metadata !"zero"}
830 !1 = metadata !{metadata !"one"}
831 !2 = metadata !{metadata !"two"}
829 !0 = !{!"zero"}
830 !1 = !{!"one"}
831 !2 = !{!"two"}
832832 ; A named metadata.
833833 !name = !{!0, !1, !2}
834834
23292329 having to print large zero initializers (e.g. for large arrays) and
23302330 is always exactly equivalent to using explicit zero initializers.
23312331 **Metadata node**
2332 A metadata node is a structure-like constant with :ref:`metadata
2333 type `. For example:
2334 "``metadata !{ i32 0, metadata !"test" }``". Unlike other
2335 constants that are meant to be interpreted as part of the
2336 instruction stream, metadata is a place to attach additional
2332 A metadata node is a constant tuple without types. For example:
2333 "``!{!0, !{!2, !0}, !"test"}``". Metadata can reference constant values,
2334 for example: "``!{!0, i32 0, i8* @global, i64 (i64)* @function, !"str"}``".
2335 Unlike other typed constants that are meant to be interpreted as part of
2336 the instruction stream, metadata is a place to attach additional
23372337 information such as debug info.
23382338
23392339 Global Variable and Function Addresses
28072807
28082808 .. _metadata:
28092809
2810 Metadata Nodes and Metadata Strings
2811 -----------------------------------
2810 Metadata
2811 ========
28122812
28132813 LLVM IR allows metadata to be attached to instructions in the program
28142814 that can convey extra information about the code to the optimizers and
28152815 code generator. One example application of metadata is source-level
28162816 debug information. There are two metadata primitives: strings and nodes.
2817 All metadata has the ``metadata`` type and is identified in syntax by a
2818 preceding exclamation point ('``!``').
2817
2818 Metadata does not have a type, and is not a value. If referenced from a
2819 ``call`` instruction, it uses the ``metadata`` type.
2820
2821 All metadata are identified in syntax by a exclamation point ('``!``').
2822
2823 Metadata Nodes and Metadata Strings
2824 -----------------------------------
28192825
28202826 A metadata string is a string surrounded by double quotes. It can
28212827 contain any character by escaping non-printable characters with
28292835
28302836 .. code-block:: llvm
28312837
2832 !{ metadata !"test\00", i32 10}
2838 !{ !"test\00", i32 10}
28332839
28342840 A :ref:`named metadata ` is a collection of
28352841 metadata nodes, which can be looked up in the module symbol table. For
28372843
28382844 .. code-block:: llvm
28392845
2840 !foo = metadata !{!4, !3}
2846 !foo = !{!4, !3}
28412847
28422848 Metadata can be used as function arguments. Here ``llvm.dbg.value``
28432849 function is using two metadata arguments:
28702876
28712877 .. code-block:: llvm
28722878
2873 !0 = metadata !{ metadata !"an example type tree" }
2874 !1 = metadata !{ metadata !"int", metadata !0 }
2875 !2 = metadata !{ metadata !"float", metadata !0 }
2876 !3 = metadata !{ metadata !"const float", metadata !2, i64 1 }
2879 !0 = !{ !"an example type tree" }
2880 !1 = !{ !"int", !0 }
2881 !2 = !{ !"float", !0 }
2882 !3 = !{ !"const float", !2, i64 1 }
28772883
28782884 The first field is an identity field. It can be any value, usually a
28792885 metadata string, which uniquely identifies the type. The most important
29132919
29142920 .. code-block:: llvm
29152921
2916 !4 = metadata !{ i64 0, i64 4, metadata !1, i64 8, i64 4, metadata !2 }
2922 !4 = !{ i64 0, i64 4, !1, i64 8, i64 4, !2 }
29172923
29182924 This describes a struct with two fields. The first is at offset 0 bytes
29192925 with size 4 bytes, and has tbaa tag !1. The second is at offset 8 bytes
29562962 .. code-block:: llvm
29572963
29582964 ; Two scope domains:
2959 !0 = metadata !{metadata !0}
2960 !1 = metadata !{metadata !1}
2965 !0 = !{!0}
2966 !1 = !{!1}
29612967
29622968 ; Some scopes in these domains:
2963 !2 = metadata !{metadata !2, metadata !0}
2964 !3 = metadata !{metadata !3, metadata !0}
2965 !4 = metadata !{metadata !4, metadata !1}
2969 !2 = !{!2, !0}
2970 !3 = !{!3, !0}
2971 !4 = !{!4, !1}
29662972
29672973 ; Some scope lists:
2968 !5 = metadata !{metadata !4} ; A list containing only scope !4
2969 !6 = metadata !{metadata !4, metadata !3, metadata !2}
2970 !7 = metadata !{metadata !3}
2974 !5 = !{!4} ; A list containing only scope !4
2975 !6 = !{!4, !3, !2}
2976 !7 = !{!3}
29712977
29722978 ; These two instructions don't alias:
29732979 %0 = load float* %c, align 4, !alias.scope !5
30043010
30053011 .. code-block:: llvm
30063012
3007 !0 = metadata !{ float 2.5 } ; maximum acceptable inaccuracy is 2.5 ULPs
3013 !0 = !{ float 2.5 } ; maximum acceptable inaccuracy is 2.5 ULPs
30083014
30093015 '``range``' Metadata
30103016 ^^^^^^^^^^^^^^^^^^^^
30363042 %d = invoke i8 @bar() to label %cont
30373043 unwind label %lpad, !range !3 ; Can only be -2, -1, 3, 4 or 5
30383044 ...
3039 !0 = metadata !{ i8 0, i8 2 }
3040 !1 = metadata !{ i8 255, i8 2 }
3041 !2 = metadata !{ i8 0, i8 2, i8 3, i8 6 }
3042 !3 = metadata !{ i8 -2, i8 0, i8 3, i8 6 }
3045 !0 = !{ i8 0, i8 2 }
3046 !1 = !{ i8 255, i8 2 }
3047 !2 = !{ i8 0, i8 2, i8 3, i8 6 }
3048 !3 = !{ i8 -2, i8 0, i8 3, i8 6 }
30433049
30443050 '``llvm.loop``'
30453051 ^^^^^^^^^^^^^^^
30593065
30603066 .. code-block:: llvm
30613067
3062 !0 = metadata !{ metadata !0 }
3063 !1 = metadata !{ metadata !1 }
3068 !0 = !{!0}
3069 !1 = !{!1}
30643070
30653071 The loop identifier metadata can be used to specify additional
30663072 per-loop metadata. Any operands after the first operand can be treated
30713077
30723078 br i1 %exitcond, label %._crit_edge, label %.lr.ph, !llvm.loop !0
30733079 ...
3074 !0 = metadata !{ metadata !0, metadata !1 }
3075 !1 = metadata !{ metadata !"llvm.loop.unroll.count", i32 4 }
3080 !0 = !{!0, !1}
3081 !1 = !{!"llvm.loop.unroll.count", i32 4}
30763082
30773083 '``llvm.loop.vectorize``' and '``llvm.loop.interleave``'
30783084 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30973103
30983104 .. code-block:: llvm
30993105
3100 !0 = metadata !{ metadata !"llvm.loop.interleave.count", i32 4 }
3106 !0 = !{!"llvm.loop.interleave.count", i32 4}
31013107
31023108 Note that setting ``llvm.loop.interleave.count`` to 1 disables interleaving
31033109 multiple iterations of the loop. If ``llvm.loop.interleave.count`` is set to 0
31133119
31143120 .. code-block:: llvm
31153121
3116 !0 = metadata !{ metadata !"llvm.loop.vectorize.enable", i1 0 }
3117 !1 = metadata !{ metadata !"llvm.loop.vectorize.enable", i1 1 }
3122 !0 = !{!"llvm.loop.vectorize.enable", i1 0}
3123 !1 = !{!"llvm.loop.vectorize.enable", i1 1}
31183124
31193125 '``llvm.loop.vectorize.width``' Metadata
31203126 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31253131
31263132 .. code-block:: llvm
31273133
3128 !0 = metadata !{ metadata !"llvm.loop.vectorize.width", i32 4 }
3134 !0 = !{!"llvm.loop.vectorize.width", i32 4}
31293135
31303136 Note that setting ``llvm.loop.vectorize.width`` to 1 disables
31313137 vectorization of the loop. If ``llvm.loop.vectorize.width`` is set to
31523158
31533159 .. code-block:: llvm
31543160
3155 !0 = metadata !{ metadata !"llvm.loop.unroll.count", i32 4 }
3161 !0 = !{!"llvm.loop.unroll.count", i32 4}
31563162
31573163 If the trip count of the loop is less than the unroll count the loop
31583164 will be partially unrolled.
31653171
31663172 .. code-block:: llvm
31673173
3168 !0 = metadata !{ metadata !"llvm.loop.unroll.disable" }
3174 !0 = !{!"llvm.loop.unroll.disable"}
31693175
31703176 '``llvm.loop.unroll.full``' Metadata
31713177 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31763182
31773183 .. code-block:: llvm
31783184
3179 !0 = metadata !{ metadata !"llvm.loop.unroll.full" }
3185 !0 = !{!"llvm.loop.unroll.full"}
31803186
31813187 '``llvm.mem``'
31823188 ^^^^^^^^^^^^^^^
32273233
32283234 for.end:
32293235 ...
3230 !0 = metadata !{ metadata !0 }
3236 !0 = !{!0}
32313237
32323238 It is also possible to have nested parallel loops. In that case the
32333239 memory accesses refer to a list of loop identifier metadata nodes instead of
32573263
32583264 outer.for.end: ; preds = %for.body
32593265 ...
3260 !0 = metadata !{ metadata !1, metadata !2 } ; a list of loop identifiers
3261 !1 = metadata !{ metadata !1 } ; an identifier for the inner loop
3262 !2 = metadata !{ metadata !2 } ; an identifier for the outer loop
3266 !0 = !{!1, !2} ; a list of loop identifiers
3267 !1 = !{!1} ; an identifier for the inner loop
3268 !2 = !{!2} ; an identifier for the outer loop
32633269
32643270 Module Flags Metadata
32653271 =====================
33433349
33443350 .. code-block:: llvm
33453351
3346 !0 = metadata !{ i32 1, metadata !"foo", i32 1 }
3347 !1 = metadata !{ i32 4, metadata !"bar", i32 37 }
3348 !2 = metadata !{ i32 2, metadata !"qux", i32 42 }
3349 !3 = metadata !{ i32 3, metadata !"qux",
3350 metadata !{
3351 metadata !"foo", i32 1
3352 !0 = !{ i32 1, !"foo", i32 1 }
3353 !1 = !{ i32 4, !"bar", i32 37 }
3354 !2 = !{ i32 2, !"qux", i32 42 }
3355 !3 = !{ i32 3, !"qux",
3356 !{
3357 !"foo", i32 1
33523358 }
33533359 }
33543360 !llvm.module.flags = !{ !0, !1, !2, !3 }
33693375
33703376 ::
33713377
3372 metadata !{ metadata !"foo", i32 1 }
3378 !{ !"foo", i32 1 }
33733379
33743380 The behavior is to emit an error if the ``llvm.module.flags`` does not
33753381 contain a flag with the ID ``!"foo"`` that has the value '1' after linking is
34453451 linker options, presumably to link against ``libz`` and the ``Cocoa``
34463452 framework::
34473453
3448 !0 = metadata !{ i32 6, metadata !"Linker Options",
3449 metadata !{
3450 metadata !{ metadata !"-lz" },
3451 metadata !{ metadata !"-framework", metadata !"Cocoa" } } }
3454 !0 = !{ i32 6, !"Linker Options",
3455 !{
3456 !{ !"-lz" },
3457 !{ !"-framework", !"Cocoa" } } }
34523458 !llvm.module.flags = !{ !0 }
34533459
34543460 The metadata encoding as lists of lists of options, as opposed to a collapsed
34943500 enum is the smallest type which can represent all of its values::
34953501
34963502 !llvm.module.flags = !{!0, !1}
3497 !0 = metadata !{i32 1, metadata !"short_wchar", i32 1}
3498 !1 = metadata !{i32 1, metadata !"short_enum", i32 0}
3503 !0 = !{i32 1, !"short_wchar", i32 1}
3504 !1 = !{i32 1, !"short_enum", i32 0}
34993505
35003506 .. _intrinsicglobalvariables:
35013507
72697275 declare i64 @llvm.read_register.i64(metadata)
72707276 declare void @llvm.write_register.i32(metadata, i32 @value)
72717277 declare void @llvm.write_register.i64(metadata, i64 @value)
7272 !0 = metadata !{metadata !"sp\00"}
7278 !0 = !{!"sp\00"}
72737279
72747280 Overview:
72757281 """""""""
608608 Lex.Lex();
609609 unsigned MetadataID = 0;
610610
611 LocTy TyLoc;
612 Type *Ty = nullptr;
613611 MDNode *Init;
614612 if (ParseUInt32(MetadataID) ||
615 ParseToken(lltok::equal, "expected '=' here") ||
616 ParseType(Ty, TyLoc) ||
617 ParseToken(lltok::exclaim, "Expected '!' here") ||
613 ParseToken(lltok::equal, "expected '=' here"))
614 return true;
615
616 // Detect common error, from old metadata syntax.
617 if (Lex.getKind() == lltok::Type)
618 return TokError("unexpected type in metadata definition");
619
620 if (ParseToken(lltok::exclaim, "Expected '!' here") ||
618621 ParseMDNode(Init))
619622 return true;
620623
17041707 //===----------------------------------------------------------------------===//
17051708
17061709 /// ParseType - Parse a type.
1707 bool LLParser::ParseType(Type *&Result, bool AllowVoid) {
1710 bool LLParser::ParseType(Type *&Result, const Twine &Msg, bool AllowVoid) {
17081711 SMLoc TypeLoc = Lex.getLoc();
17091712 switch (Lex.getKind()) {
17101713 default:
1711 return TokError("expected type");
1714 return TokError(Msg);
17121715 case lltok::Type:
17131716 // Type ::= 'float' | 'void' (etc)
17141717 Result = Lex.getTyVal();
18521855 if (ParseType(ArgTy, ArgLoc))
18531856 return true;
18541857
1855 // Otherwise, handle normal operands.
1856 if (ParseOptionalParamAttrs(ArgAttrs) || ParseValue(ArgTy, V, PFS))
1857 return true;
1858 if (ArgTy->isMetadataTy()) {
1859 if (ParseMetadataAsValue(V, PFS))
1860 return true;
1861 } else {
1862 // Otherwise, handle normal operands.
1863 if (ParseOptionalParamAttrs(ArgAttrs) || ParseValue(ArgTy, V, PFS))
1864 return true;
1865 }
18581866 ArgList.push_back(ParamInfo(ArgLoc, V, AttributeSet::get(V->getContext(),
18591867 AttrIndex++,
18601868 ArgAttrs)));
23872395 ID.StrVal = Lex.getStrVal();
23882396 ID.Kind = ValID::t_LocalName;
23892397 break;
2390 case lltok::exclaim: // !42, !{...}, or !"foo"
2391 return ParseMetadataAsValue(ID, PFS);
23922398 case lltok::APSInt:
23932399 ID.APSIntVal = Lex.getAPSIntVal();
23942400 ID.Kind = ValID::t_APSInt;
29302936
29312937 bool LLParser::ParseMDNode(MDNode *&MD) {
29322938 SmallVector Elts;
2933 if (ParseMDNodeVector(Elts, nullptr))
2939 if (ParseMDNodeVector(Elts))
29342940 return true;
29352941
29362942 MD = MDNode::get(Context, Elts);
29372943 return false;
29382944 }
29392945
2940 bool LLParser::ParseMDNodeOrLocal(Metadata *&MD, PerFunctionState *PFS) {
2941 SmallVector Elts;
2942 if (ParseMDNodeVector(Elts, PFS))
2943 return true;
2944
2945 // Check for function-local metadata masquerading as an MDNode.
2946 if (PFS && Elts.size() == 1 && Elts[0] && isa(Elts[0])) {
2947 MD = Elts[0];
2948 return false;
2949 }
2950
2951 MD = MDNode::get(Context, Elts);
2952 return false;
2953 }
2954
2955 bool LLParser::ParseMetadataAsValue(ValID &ID, PerFunctionState *PFS) {
2946 /// ParseMetadataAsValue
2947 /// ::= metadata i32 %local
2948 /// ::= metadata i32 @global
2949 /// ::= metadata i32 7
2950 /// ::= metadata !0
2951 /// ::= metadata !{...}
2952 /// ::= metadata !"string"
2953 bool LLParser::ParseMetadataAsValue(Value *&V, PerFunctionState &PFS) {
2954 // Note: the type 'metadata' has already been parsed.
29562955 Metadata *MD;
2957 if (ParseMetadata(MD, PFS))
2958 return true;
2959
2960 ID.Kind = ValID::t_Metadata;
2961 ID.MetadataVal = MetadataAsValue::get(Context, MD);
2956 if (ParseMetadata(MD, &PFS))
2957 return true;
2958
2959 V = MetadataAsValue::get(Context, MD);
2960 return false;
2961 }
2962
2963 /// ParseValueAsMetadata
2964 /// ::= i32 %local
2965 /// ::= i32 @global
2966 /// ::= i32 7
2967 bool LLParser::ParseValueAsMetadata(Metadata *&MD, PerFunctionState *PFS) {
2968 Type *Ty;
2969 LocTy Loc;
2970 if (ParseType(Ty, "expected metadata operand", Loc))
2971 return true;
2972 if (Ty->isMetadataTy())
2973 return Error(Loc, "invalid metadata-value-metadata roundtrip");
2974
2975 Value *V;
2976 if (ParseValue(Ty, V, PFS))
2977 return true;
2978
2979 MD = ValueAsMetadata::get(V);
29622980 return false;
29632981 }
29642982
29652983 /// ParseMetadata
2984 /// ::= i32 %local
2985 /// ::= i32 @global
2986 /// ::= i32 7
29662987 /// ::= !42
29672988 /// ::= !{...}
29682989 /// ::= !"string"
29692990 bool LLParser::ParseMetadata(Metadata *&MD, PerFunctionState *PFS) {
2970 if (ParseToken(lltok::exclaim, "expected '!' here"))
2971 return true;
2991 // ValueAsMetadata:
2992 //
2993 if (Lex.getKind() != lltok::exclaim)
2994 return ParseValueAsMetadata(MD, PFS);
2995
2996 // '!'.
2997 assert(Lex.getKind() == lltok::exclaim && "Expected '!' here");
2998 Lex.Lex();
29722999
29733000 // MDNode:
29743001 // !{ ... }
2975 if (Lex.getKind() == lltok::lbrace)
2976 return ParseMDNodeOrLocal(MD, PFS);
3002 if (Lex.getKind() == lltok::lbrace) {
3003 MDNode *N;
3004 if (ParseMDNode(N))
3005 return true;
3006 MD = N;
3007 return false;
3008 }
29773009
29783010 // Standalone metadata reference
29793011 // !42
30233055 (ID.UIntVal>>1)&1, (InlineAsm::AsmDialect(ID.UIntVal>>2)));
30243056 return false;
30253057 }
3026 case ValID::t_Metadata:
3027 if (!Ty->isMetadataTy())
3028 return Error(ID.Loc, "metadata value must have metadata type");
3029 V = ID.MetadataVal;
3030 return false;
30313058 case ValID::t_GlobalName:
30323059 V = GetGlobalVal(ID.StrVal, Ty, ID.Loc);
30333060 return V == nullptr;
46834710 /// ::= { Element (',' Element)* }
46844711 /// Element
46854712 /// ::= 'null' | TypeAndValue
4686 bool LLParser::ParseMDNodeVector(SmallVectorImpl &Elts,
4687 PerFunctionState *PFS) {
4713 bool LLParser::ParseMDNodeVector(SmallVectorImpl &Elts) {
46884714 if (ParseToken(lltok::lbrace, "expected '{' here"))
46894715 return true;
46904716
46924718 if (EatIfPresent(lltok::rbrace))
46934719 return false;
46944720
4695 bool IsLocal = false;
46964721 do {
4697 if (IsLocal)
4698 return TokError("unexpected operand after function-local metadata");
4699
47004722 // Null is a special case since it is typeless.
47014723 if (EatIfPresent(lltok::kw_null)) {
47024724 Elts.push_back(nullptr);
47034725 continue;
47044726 }
47054727
4706 Type *Ty = nullptr;
4707 if (ParseType(Ty))
4728 Metadata *MD;
4729 if (ParseMetadata(MD, nullptr))
47084730 return true;
4709
4710 if (Ty->isMetadataTy()) {
4711 // No function-local metadata here.
4712 Metadata *MD = nullptr;
4713 if (ParseMetadata(MD, nullptr))
4714 return true;
4715 Elts.push_back(MD);
4716 continue;
4717 }
4718
4719 Value *V = nullptr;
4720 if (ParseValue(Ty, V, PFS))
4721 return true;
4722 assert(V && "Expected valid value");
4723 Elts.push_back(ValueAsMetadata::get(V));
4724
4725 if (isa(Elts.back())) {
4726 assert(PFS && "Unexpected function-local metadata without PFS");
4727 if (Elts.size() > 1)
4728 return TokError("unexpected function-local metadata");
4729 IsLocal = true;
4730 }
4731 Elts.push_back(MD);
47314732 } while (EatIfPresent(lltok::comma));
47324733
47334734 return ParseToken(lltok::rbrace, "expected end of metadata node");
5151 t_EmptyArray, // No value: []
5252 t_Constant, // Value in ConstantVal.
5353 t_InlineAsm, // Value in StrVal/StrVal2/UIntVal.
54 t_Metadata, // Value in MetadataVal.
5554 t_ConstantStruct, // Value in ConstantStructElts.
5655 t_PackedConstantStruct // Value in ConstantStructElts.
5756 } Kind;
6261 APSInt APSIntVal;
6362 APFloat APFloatVal;
6463 Constant *ConstantVal;
65 MetadataAsValue *MetadataVal;
6664 Constant **ConstantStructElts;
6765
6866 ValID() : Kind(t_LocalID), APFloatVal(0.0) {}
274272 bool inAttrGrp, LocTy &BuiltinLoc);
275273
276274 // Type Parsing.
277 bool ParseType(Type *&Result, bool AllowVoid = false);
275 bool ParseType(Type *&Result, const Twine &Msg, bool AllowVoid = false);
276 bool ParseType(Type *&Result, bool AllowVoid = false) {
277 return ParseType(Result, "expected type", AllowVoid);
278 }
279 bool ParseType(Type *&Result, const Twine &Msg, LocTy &Loc,
280 bool AllowVoid = false) {
281 Loc = Lex.getLoc();
282 return ParseType(Result, Msg, AllowVoid);
283 }
278284 bool ParseType(Type *&Result, LocTy &Loc, bool AllowVoid = false) {
279285 Loc = Lex.getLoc();
280286 return ParseType(Result, AllowVoid);
379385 bool ParseGlobalTypeAndValue(Constant *&V);
380386 bool ParseGlobalValueVector(SmallVectorImpl &Elts);
381387 bool parseOptionalComdat(Comdat *&C);
382 bool ParseMetadataAsValue(ValID &ID, PerFunctionState *PFS);
388 bool ParseMetadataAsValue(Value *&V, PerFunctionState &PFS);
389 bool ParseValueAsMetadata(Metadata *&MD, PerFunctionState *PFS);
383390 bool ParseMetadata(Metadata *&MD, PerFunctionState *PFS);
384391 bool ParseMDNode(MDNode *&MD);
385 bool ParseMDNodeOrLocal(Metadata *&MD, PerFunctionState *PFS);
386 bool ParseMDNodeVector(SmallVectorImpl &,
387 PerFunctionState *PFS);
392 bool ParseMDNodeVector(SmallVectorImpl &MDs);
388393 bool ParseInstructionMetadata(Instruction *Inst, PerFunctionState *PFS);
389394
390395 // Function Parsing.
12631263 Out << ' ';
12641264 WriteAsOperandInternal(Out, V, TypePrinter, Machine, Context);
12651265 } else {
1266 Out << "metadata ";
12671266 WriteAsOperandInternal(Out, MD, TypePrinter, Machine, Context);
12681267 }
12691268 if (mi + 1 != me)
13801379 assert((FromValue || !isa(V)) &&
13811380 "Unexpected function-local metadata outside of value argument");
13821381
1383 if (FromValue)
1384 Out << "!{";
13851382 TypePrinter->print(V->getValue()->getType(), Out);
13861383 Out << ' ';
13871384 WriteAsOperandInternal(Out, V->getValue(), TypePrinter, Machine, Context);
1388 if (FromValue)
1389 Out << "}";
13901385 }
13911386
13921387 void AssemblyWriter::init() {
23772372 }
23782373
23792374 void AssemblyWriter::writeMDNode(unsigned Slot, const MDNode *Node) {
2380 Out << '!' << Slot << " = metadata ";
2375 Out << '!' << Slot << " = ";
23812376 printMDNodeBody(Node);
23822377 }
23832378
2828 ret i32 %tmp5.lobit
2929 }
3030
31 !0 = metadata !{metadata !4, metadata !4, i64 0}
32 !1 = metadata !{metadata !"omnipotent char", metadata !2}
33 !2 = metadata !{metadata !"Simple C/C++ TBAA", null}
34 !3 = metadata !{metadata !5, metadata !5, i64 0}
35 !4 = metadata !{metadata !"double", metadata !1}
36 !5 = metadata !{metadata !"int", metadata !1}
31 !0 = !{!4, !4, i64 0}
32 !1 = !{!"omnipotent char", !2}
33 !2 = !{!"Simple C/C++ TBAA", null}
34 !3 = !{!5, !5, i64 0}
35 !4 = !{!"double", !1}
36 !5 = !{!"int", !1}
2222 ; CHECK: %add = add nsw i32 %0, 1
2323 }
2424
25 !3 = metadata !{}
25 !3 = !{}
2222 ret void
2323 }
2424
25 !0 = metadata !{metadata !"branch_weights", i32 0, i32 3}
25 !0 = !{!"branch_weights", i32 0, i32 3}
2626
2727 ; CHECK-LABEL: Printing analysis {{.*}} for function 'infinite_loop'
2828 ; CHECK-NEXT: block-frequency-info: infinite_loop
4646 ret void
4747 }
4848
49 !1 = metadata !{metadata !"branch_weights", i32 1, i32 1}
49 !1 = !{!"branch_weights", i32 1, i32 1}
4646 ret i32 %result
4747 }
4848
49 !0 = metadata !{metadata !"branch_weights", i32 64, i32 4}
49 !0 = !{!"branch_weights", i32 64, i32 4}
5050
5151 define i32 @test3(i32 %i, i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) {
5252 ; CHECK-LABEL: Printing analysis {{.*}} for function 'test3':
8989 ret i32 %result
9090 }
9191
92 !1 = metadata !{metadata !"branch_weights", i32 4, i32 4, i32 64, i32 4, i32 4}
92 !1 = !{!"branch_weights", i32 4, i32 4, i32 64, i32 4, i32 4}
9393
9494 define void @nested_loops(i32 %a) {
9595 ; CHECK-LABEL: Printing analysis {{.*}} for function 'nested_loops':
137137
138138 declare void @g(i32)
139139
140 !2 = metadata !{metadata !"branch_weights", i32 1, i32 4000}
140 !2 = !{!"branch_weights", i32 1, i32 4000}
2222 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
2323 ret void
2424 }
25 !0 = metadata !{metadata !"branch_weights", i32 1, i32 9}
26 !1 = metadata !{metadata !"branch_weights", i32 4, i32 5}
25 !0 = !{!"branch_weights", i32 1, i32 9}
26 !1 = !{!"branch_weights", i32 4, i32 5}
6565 ret i32 %Return.2
6666 }
6767
68 !0 = metadata !{metadata !"branch_weights", i32 1, i32 3}
69 !1 = metadata !{metadata !"branch_weights", i32 4, i32 1}
70 !2 = metadata !{metadata !"branch_weights", i32 2, i32 1}
68 !0 = !{!"branch_weights", i32 1, i32 3}
69 !1 = !{!"branch_weights", i32 4, i32 1}
70 !2 = !{!"branch_weights", i32 2, i32 1}
7171
7272 declare i32 @c2(i32, i32)
7373 declare i32 @logic2(i32, i32, i32)
158158 ret i32 %Return.0
159159 }
160160
161 !3 = metadata !{metadata !"branch_weights", i32 1, i32 1}
161 !3 = !{!"branch_weights", i32 1, i32 1}
162162
163163 declare i32 @c3(i32, i32, i32)
164164 declare i32 @logic3(i32, i32, i32, i32)
3636
3737 declare i1 @foo()
3838
39 !0 = metadata !{metadata !"branch_weights", i32 4294967295, i32 1}
39 !0 = !{!"branch_weights", i32 4294967295, i32 1}
3030 ret void
3131 }
3232
33 !0 = metadata !{metadata !"branch_weights", i32 1, i32 7}
34 !1 = metadata !{metadata !"branch_weights", i32 3, i32 4}
33 !0 = !{!"branch_weights", i32 1, i32 7}
34 !1 = !{!"branch_weights", i32 3, i32 4}
3535
3636 ; Irreducible control flow
3737 ; ========================
111111 ret void
112112 }
113113
114 !2 = metadata !{metadata !"branch_weights", i32 3, i32 1}
114 !2 = !{!"branch_weights", i32 3, i32 1}
115115
116116 ; Testcase #2
117117 ; ===========
155155 ret void
156156 }
157157
158 !3 = metadata !{metadata !"branch_weights", i32 2, i32 2, i32 2}
158 !3 = !{!"branch_weights", i32 2, i32 2, i32 2}
159159
160160 ; A true loop with irreducible control flow inside.
161161 define void @loop_around_irreducible(i1 %x) {
185185 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
186186 ret void
187187 }
188 !4 = metadata !{metadata !"branch_weights", i32 1, i32 1}
189 !5 = metadata !{metadata !"branch_weights", i32 3, i32 1}
188 !4 = !{!"branch_weights", i32 1, i32 1}
189 !5 = !{!"branch_weights", i32 3, i32 1}
190190
191191 ; Two unrelated irreducible SCCs.
192192 define void @two_sccs(i1 %x) {
224224 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
225225 ret void
226226 }
227 !6 = metadata !{metadata !"branch_weights", i32 3, i32 1}
228 !7 = metadata !{metadata !"branch_weights", i32 1, i32 1}
229 !8 = metadata !{metadata !"branch_weights", i32 4, i32 1}
227 !6 = !{!"branch_weights", i32 3, i32 1}
228 !7 = !{!"branch_weights", i32 1, i32 1}
229 !8 = !{!"branch_weights", i32 4, i32 1}
230230
231231 ; A true loop inside irreducible control flow.
232232 define void @loop_inside_irreducible(i1 %x) {
256256 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
257257 ret void
258258 }
259 !9 = metadata !{metadata !"branch_weights", i32 1, i32 1}
260 !10 = metadata !{metadata !"branch_weights", i32 3, i32 1}
261 !11 = metadata !{metadata !"branch_weights", i32 2, i32 1}
259 !9 = !{!"branch_weights", i32 1, i32 1}
260 !10 = !{!"branch_weights", i32 3, i32 1}
261 !11 = !{!"branch_weights", i32 2, i32 1}
262262
263263 ; Irreducible control flow in a branch that's in a true loop.
264264 define void @loop_around_branch_with_irreducible(i1 %x) {
300300 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
301301 ret void
302302 }
303 !12 = metadata !{metadata !"branch_weights", i32 3, i32 1}
304 !13 = metadata !{metadata !"branch_weights", i32 1, i32 1}
303 !12 = !{!"branch_weights", i32 3, i32 1}
304 !13 = !{!"branch_weights", i32 1, i32 1}
305305
306306 ; Irreducible control flow between two true loops.
307307 define void @loop_around_branch_with_irreducible_around_loop(i1 %x) {
347347 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
348348 ret void
349349 }
350 !14 = metadata !{metadata !"branch_weights", i32 2, i32 1}
351 !15 = metadata !{metadata !"branch_weights", i32 1, i32 1}
352 !16 = metadata !{metadata !"branch_weights", i32 3, i32 1}
353 !17 = metadata !{metadata !"branch_weights", i32 4, i32 1}
350 !14 = !{!"branch_weights", i32 2, i32 1}
351 !15 = !{!"branch_weights", i32 1, i32 1}
352 !16 = !{!"branch_weights", i32 3, i32 1}
353 !17 = !{!"branch_weights", i32 4, i32 1}
354354
355355 ; An irreducible SCC with a non-header.
356356 define void @nonheader(i1 %x) {
376376 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
377377 ret void
378378 }
379 !18 = metadata !{metadata !"branch_weights", i32 1, i32 1}
380 !19 = metadata !{metadata !"branch_weights", i32 1, i32 3}
381 !20 = metadata !{metadata !"branch_weights", i32 3, i32 1}
379 !18 = !{!"branch_weights", i32 1, i32 1}
380 !19 = !{!"branch_weights", i32 1, i32 3}
381 !20 = !{!"branch_weights", i32 3, i32 1}
382382
383383 ; An irreducible SCC with an irreducible sub-SCC. In the current version of
384384 ; -block-freq, this means an extra header.
415415 ; CHECK-NEXT: exit: float = 1.0, int = [[ENTRY]]
416416 ret void
417417 }
418 !21 = metadata !{metadata !"branch_weights", i32 2, i32 1}
419 !22 = metadata !{metadata !"branch_weights", i32 1, i32 1}
420 !23 = metadata !{metadata !"branch_weights", i32 8, i32 1, i32 3, i32 12}
418 !21 = !{!"branch_weights", i32 2, i32 1}
419 !22 = !{!"branch_weights", i32 1, i32 1}
420 !23 = !{!"branch_weights", i32 8, i32 1, i32 3, i32 12}
3939 declare i1 @foo0(i32)
4040 declare i2 @foo1(i32)
4141
42 !0 = metadata !{metadata !"branch_weights", i32 1, i32 3}
43 !1 = metadata !{metadata !"branch_weights", i32 1, i32 2, i32 3}
42 !0 = !{!"branch_weights", i32 1, i32 3}
43 !1 = !{!"branch_weights", i32 1, i32 2, i32 3}
5454 declare i1 @foo5(i32)
5555 declare i1 @foo6(i32)
5656
57 !0 = metadata !{metadata !"branch_weights", i32 1, i32 3}
58 !1 = metadata !{metadata !"branch_weights", i32 3, i32 1}
57 !0 = !{!"branch_weights", i32 1, i32 3}
58 !1 = !{!"branch_weights", i32 3, i32 1}
4242 ret i32 %result
4343 }
4444
45 !0 = metadata !{metadata !"branch_weights", i32 64, i32 4}
45 !0 = !{!"branch_weights", i32 64, i32 4}
4646
4747 define i32 @test3(i32 %i, i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) {
4848 ; CHECK: Printing analysis {{.*}} for function 'test3'
8686 ret i32 %result
8787 }
8888
89 !1 = metadata !{metadata !"branch_weights", i32 4, i32 4, i32 64, i32 4, i32 4}
89 !1 = !{!"branch_weights", i32 4, i32 4, i32 64, i32 4, i32 4}
9090
9191 define i32 @test4(i32 %x) nounwind uwtable readnone ssp {
9292 ; CHECK: Printing analysis {{.*}} for function 'test4'
113113 ret i32 %retval.0
114114 }
115115
116 !2 = metadata !{metadata !"branch_weights", i32 7, i32 6, i32 4, i32 4, i32 64}
116 !2 = !{!"branch_weights", i32 7, i32 6, i32 4, i32 4, i32 64}
117117
118118 declare void @coldfunc() cold
119119
2828 ret i32 %tmp5.lobit
2929 }
3030
31 !0 = metadata !{metadata !4, metadata !4, i64 0}
32 !1 = metadata !{metadata !"omnipotent char", metadata !2}
33 !2 = metadata !{metadata !"Simple C/C++ TBAA", null}
34 !3 = metadata !{metadata !5, metadata !5, i64 0}
35 !4 = metadata !{metadata !"double", metadata !1}
36 !5 = metadata !{metadata !"int", metadata !1}
31 !0 = !{!4, !4, i64 0}
32 !1 = !{!"omnipotent char", !2}
33 !2 = !{!"Simple C/C++ TBAA", null}
34 !3 = !{!5, !5, i64 0}
35 !4 = !{!"double", !1}
36 !5 = !{!"int", !1}
3333 ret i32 0
3434 }
3535
36 !0 = metadata !{i32 1, i32 100}
36 !0 = !{i32 1, i32 100}
2121
2222 attributes #0 = { nounwind uwtable }
2323
24 !0 = metadata !{metadata !0, metadata !"some domain"}
25 !1 = metadata !{metadata !1, metadata !"some other domain"}
24 !0 = !{!0, !"some domain"}
25 !1 = !{!1, !"some other domain"}
2626
2727 ; Two scopes (which must be self-referential to avoid being "uniqued"):
28 !2 = metadata !{metadata !2, metadata !0, metadata !"a scope in dom0"}
29 !3 = metadata !{metadata !2}
28 !2 = !{!2, !0, !"a scope in dom0"}
29 !3 = !{!2}
3030
31 !4 = metadata !{metadata !4, metadata !0, metadata !"another scope in dom0"}
32 !5 = metadata !{metadata !4}
31 !4 = !{!4, !0, !"another scope in dom0"}
32 !5 = !{!4}
3333
3434 ; A list of the two scopes.
35 !6 = metadata !{metadata !2, metadata !4}
35 !6 = !{!2, !4}
3636
3737 ; Another scope in the second domain
38 !7 = metadata !{metadata !7, metadata !1, metadata !"another scope in dom1"}
39 !8 = metadata !{metadata !7}
38 !7 = !{!7, !1, !"another scope in dom1"}
39 !8 = !{!7}
4040
4141 ; A list of scopes from both domains.
42 !9 = metadata !{metadata !2, metadata !4, metadata !7}
42 !9 = !{!2, !4, !7}
4343
4444 ; CHECK: NoAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %0, float* %arrayidx.i, align 4, !noalias !6
4545 ; CHECK: NoAlias: %0 = load float* %c, align 4, !alias.scope !0 <-> store float %1, float* %arrayidx.i2, align 4, !noalias !6
2121
2222 attributes #0 = { nounwind uwtable }
2323
24 !0 = metadata !{metadata !0, metadata !"some domain"}
25 !1 = metadata !{metadata !1, metadata !0, metadata !"some scope"}
24 !0 = !{!0, !"some domain"}
25 !1 = !{!1, !0, !"some scope"}
2626
3131
3232 attributes #0 = { nounwind uwtable }
3333
34 !0 = metadata !{metadata !1, metadata !3}
35 !1 = metadata !{metadata !1, metadata !2, metadata !"some scope"}
36 !2 = metadata !{metadata !2, metadata !"some domain"}
37 !3 = metadata !{metadata !3, metadata !2, metadata !"some other scope"}
38 !4 = metadata !{metadata !1}
39 !5 = metadata !{metadata !3}
34 !0 = !{!1, !3}
35 !1 = !{!1, !2, !"some scope"}
36 !2 = !{!2, !"some domain"}
37 !3 = !{!3, !2, !"some other scope"}
38 !4 = !{!1}
39 !5 = !{!3}
4040
3131
3232 !llvm.ident = !{!0}
3333
34 !0 = metadata !{metadata !"clang version 3.4"}
35 !1 = metadata !{metadata !2, metadata !2, i64 0}
36 !2 = metadata !{metadata !"any pointer", metadata !3, i64 0}
37 !3 = metadata !{metadata !"omnipotent char", metadata !4, i64 0}
38 !4 = metadata !{metadata !"Simple C/C++ TBAA"}
39 !5 = metadata !{metadata !6, metadata !2, i64 8}
40 !6 = metadata !{metadata !"_ZTSN12_GLOBAL__N_11RINS_1FIPi8TreeIterN1I1S1LENS_1KINS_1DIKS2_S3_EEEEE1GEPSD_EE", metadata !7, i64 8}
41 !7 = metadata !{metadata !"_ZTSN12_GLOBAL__N_11FIPi8TreeIterN1I1S1LENS_1KINS_1DIKS1_S2_EEEEE1GE", metadata !8, i64 0}
42 !8 = metadata !{metadata !"_ZTSN12_GLOBAL__N_11DIKPi8TreeIterEE", metadata !2, i64 0, metadata !9, i64 8}
43 !9 = metadata !{metadata !"_ZTS8TreeIter", metadata !2, i64 8, metadata !10, i64 16}
44 !10 = metadata !{metadata !"bool", metadata !3, i64 0}
34 !0 = !{!"clang version 3.4"}
35 !1 = !{!2, !2, i64 0}
36 !2 = !{!"any pointer", !3, i64 0}
37 !3 = !{!"omnipotent char", !4, i64 0}
38 !4 = !{!"Simple C/C++ TBAA"}
39 !5 = !{!6, !2, i64 8}
40 !6 = !{!"_ZTSN12_GLOBAL__N_11RINS_1FIPi8TreeIterN1I1S1LENS_1KINS_1DIKS2_S3_EEEEE1GEPSD_EE", !7, i64 8}
41 !7 = !{!"_ZTSN12_GLOBAL__N_11FIPi8TreeIterN1I1S1LENS_1KINS_1DIKS1_S2_EEEEE1GE", !8, i64 0}
42 !8 = !{!"_ZTSN12_GLOBAL__N_11DIKPi8TreeIterEE", !2, i64 0, !9, i64 8}
43 !9 = !{!"_ZTS8TreeIter", !2, i64 8, !10, i64 16}
44 !10 = !{!"bool", !3, i64 0}
4444 }
4545
4646 ; Root note.
47 !0 = metadata !{ }
47 !0 = !{ }
4848 ; Some type.
49 !1 = metadata !{metadata !7, metadata !7, i64 0}
49 !1 = !{!7, !7, i64 0}
5050 ; Some other non-aliasing type.
51 !2 = metadata !{metadata !8, metadata !8, i64 0}
51 !2 = !{!8, !8, i64 0}
5252
5353 ; Some type.
54 !3 = metadata !{metadata !9, metadata !9, i64 0}
54 !3 = !{!9, !9, i64 0}
5555 ; Some type in a different type system.
56 !4 = metadata !{metadata !10, metadata !10, i64 0}
56 !4 = !{!10, !10, i64 0}
5757
5858 ; Invariant memory.
59 !5 = metadata !{metadata !11, metadata !11, i64 0, i1 1}
59 !5 = !{!11, !11, i64 0, i1 1}
6060 ; Not invariant memory.
61 !6 = metadata !{metadata !11, metadata !11, i64 0, i1 0}
62 !7 = metadata !{ metadata !"foo", metadata !0 }
63 !8 = metadata !{ metadata !"bar", metadata !0 }
64 !9 = metadata !{ metadata !"foo", metadata !0 }
65 !10 = metadata !{ metadata !"bar", metadata !"different" }
66 !11 = metadata !{ metadata !"qux", metadata !0}
61 !6 = !{!11, !11, i64 0, i1 0}
62 !7 = !{ !"foo", !0 }
63 !8 = !{ !"bar", !0 }
64 !9 = !{ !"foo", !0 }
65 !10 = !{ !"bar", !"different" }
66 !11 = !{ !"qux", !0}
3131 ret i32 %X
3232 }
3333
34 !0 = metadata !{metadata !"test"}
35 !1 = metadata !{metadata !3, metadata !3, i64 0}
36 !2 = metadata !{metadata !4, metadata !4, i64 0}
37 !3 = metadata !{metadata !"green", metadata !0}
38 !4 = metadata !{metadata !"blue", metadata !0}
34 !0 = !{!"test"}
35 !1 = !{!3, !3, i64 0}
36 !2 = !{!4, !4, i64 0}
37 !3 = !{!"green", !0}
38 !4 = !{!"blue", !0}
4949 }
5050
5151 ; Root note.
52 !0 = metadata !{ }
52 !0 = !{ }
5353 ; Some type.
54 !1 = metadata !{metadata !7, metadata !7, i64 0}
54 !1 = !{!7, !7, i64 0}
5555 ; Some other non-aliasing type.
56 !2 = metadata !{metadata !8, metadata !8, i64 0}
56 !2 = !{!8, !8, i64 0}
5757
5858 ; Some type.
59 !3 = metadata !{metadata !9, metadata !9, i64 0}
59 !3 = !{!9, !9, i64 0}
6060 ; Some type in a different type system.
61 !4 = metadata !{metadata !10, metadata !10, i64 0}
61 !4 = !{!10, !10, i64 0}
6262
6363 ; Invariant memory.
64 !5 = metadata !{metadata !11, metadata !11, i64 0, i1 1}
64 !5 = !{!11, !11, i64 0, i1 1}
6565 ; Not invariant memory.
66 !6 = metadata !{metadata !11, metadata !11, i64 0, i1 0}
67 !7 = metadata !{ metadata !"foo", metadata !0 }
68 !8 = metadata !{ metadata !"bar", metadata !0 }
69 !9 = metadata !{ metadata !"foo", metadata !0 }
70 !10 = metadata !{ metadata !"bar", metadata !"different" }
71 !11 = metadata !{ metadata !"qux", metadata !0}
66 !6 = !{!11, !11, i64 0, i1 0}
67 !7 = !{ !"foo", !0 }
68 !8 = !{ !"bar", !0 }
69 !9 = !{ !"foo", !0 }
70 !10 = !{ !"bar", !"different" }
71 !11 = !{ !"qux", !0}
122122 ret float %tmp10
123123 }
124124
125 ; CHECK: [[TAG]] = metadata !{metadata [[TYPE_LL:!.*]], metadata [[TYPE_LL]], i64 0}
126 ; CHECK: [[TYPE_LL]] = metadata !{metadata !"long long", metadata {{!.*}}}
127 !0 = metadata !{metadata !6, metadata !6, i64 0}
128 !1 = metadata !{metadata !"omnipotent char", metadata !2}
129 !2 = metadata !{metadata !"Simple C/C++ TBAA", null}
130 !3 = metadata !{metadata !7, metadata !7, i64 0}
131 !4 = metadata !{metadata !8, metadata !8, i64 0}
132 !5 = metadata !{metadata !9, metadata !9, i64 0}
133 !6 = metadata !{metadata !"short", metadata !1}
134 !7 = metadata !{metadata !"long long", metadata !1}
135 !8 = metadata !{metadata !"int", metadata !1}
136 !9 = metadata !{metadata !"float", metadata !1}
125 ; CHECK: [[TAG]] = !{[[TYPE_LL:!.*]], [[TYPE_LL]], i64 0}
126 ; CHECK: [[TYPE_LL]] = !{!"long long", {{!.*}}}
127 !0 = !{!6, !6, i64 0}
128 !1 = !{!"omnipotent char", !2}
129 !2 = !{!"Simple C/C++ TBAA", null}
130 !3 = !{!7, !7, i64 0}
131 !4 = !{!8, !8, i64 0}
132 !5 = !{!9, !9, i64 0}
133 !6 = !{!"short", !1}
134 !7 = !{!"long long", !1}
135 !8 = !{!"int", !1}
136 !9 = !{!"float", !1}
7676 ; CHECK: attributes #2 = { nounwind readonly }
7777
7878 ; Root note.
79 !0 = metadata !{ }
79 !0 = !{ }
8080
8181 ; Invariant memory.
82 !1 = metadata !{metadata !3, metadata !3, i64 0, i1 1 }
82 !1 = !{!3, !3, i64 0, i1 1 }
8383 ; Not invariant memory.
84 !2 = metadata !{metadata !3, metadata !3, i64 0, i1 0 }
85 !3 = metadata !{ metadata !"foo", metadata !0 }
84 !2 = !{!3, !3, i64 0, i1 0 }
85 !3 = !{ !"foo", !0 }
8383 ret void
8484 }
8585
86 !0 = metadata !{}
87 !1 = metadata !{metadata !5, metadata !5, i64 0}
88 !2 = metadata !{metadata !6, metadata !6, i64 0}
89 !3 = metadata !{metadata !7, metadata !7, i64 0}
90 !4 = metadata !{metadata !8, metadata !8, i64 0}
91 !5 = metadata !{metadata !"red", metadata !0}
92 !6 = metadata !{metadata !"blu", metadata !0}
93 !7 = metadata !{metadata !"outer space"}
94 !8 = metadata !{metadata !"brick red", metadata !5}
86 !0 = !{}
87 !1 = !{!5, !5, i64 0}
88 !2 = !{!6, !6, i64 0}
89 !3 = !{!7, !7, i64 0}
90 !4 = !{!8, !8, i64 0}
91 !5 = !{!"red", !0}
92 !6 = !{!"blu", !0}
93 !7 = !{!"outer space"}
94 !8 = !{!"brick red", !5}
2424 ; CHECK: attributes #0 = { nounwind readonly }
2525 ; CHECK: attributes [[NUW]] = { nounwind }
2626
27 !0 = metadata !{metadata !"tbaa root", null}
28 !1 = metadata !{metadata !3, metadata !3, i64 0}
29 !2 = metadata !{metadata !4, metadata !4, i64 0}
30 !3 = metadata !{metadata !"A", metadata !0}
31 !4 = metadata !{metadata !"B", metadata !0}
27 !0 = !{!"tbaa root", null}
28 !1 = !{!3, !3, i64 0}
29 !2 = !{!4, !4, i64 0}
30 !3 = !{!"A", !0}
31 !4 = !{!"B", !0}
2828 ret void
2929 }
3030
31 !0 = metadata !{metadata !"root", null}
32 !1 = metadata !{metadata !6, metadata !6, i64 0}
33 !2 = metadata !{metadata !7, metadata !7, i64 0}
31 !0 = !{!"root", null}
32 !1 = !{!6, !6, i64 0}
33 !2 = !{!7, !7, i64 0}
3434
3535 ; LICM shouldn't hoist anything here.
3636
5555 br label %loop
5656 }
5757
58 !3 = metadata !{metadata !"pointer", metadata !8}
59 !4 = metadata !{metadata !8, metadata !8, i64 0}
60 !5 = metadata !{metadata !9, metadata !9, i64 0}
61 !6 = metadata !{metadata !"pointer", metadata !0}
62 !7 = metadata !{metadata !"double", metadata !0}
63 !8 = metadata !{metadata !"char", metadata !9}
64 !9 = metadata !{metadata !"root", null}
58 !3 = !{!"pointer", !8}
59 !4 = !{!8, !8, i64 0}
60 !5 = !{!9, !9, i64 0}
61 !6 = !{!"pointer", !0}
62 !7 = !{!"double", !0}
63 !8 = !{!"char", !9}
64 !9 = !{!"root", null}
1717
1818 declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) nounwind
1919
20 ; CHECK: [[TAGA]] = metadata !{metadata [[TYPEA:!.*]], metadata [[TYPEA]], i64 0}
21 ; CHECK: [[TYPEA]] = metadata !{metadata !"A", metadata !{{.*}}}
22 !0 = metadata !{metadata !"tbaa root", null}
23 !1 = metadata !{metadata !3, metadata !3, i64 0}
24 !2 = metadata !{metadata !4, metadata !4, i64 0}
25 !3 = metadata !{metadata !"A", metadata !0}
26 !4 = metadata !{metadata !"B", metadata !0}
20 ; CHECK: [[TAGA]] = !{[[TYPEA:!.*]], [[TYPEA]], i64 0}
21 ; CHECK: [[TYPEA]] = !{!"A", !{{.*}}}
22 !0 = !{!"tbaa root", null}
23 !1 = !{!3, !3, i64 0}
24 !2 = !{!4, !4, i64 0}
25 !3 = !{!"A", !0}
26 !4 = !{!"B", !0}
9696
9797 attributes #0 = { nounwind }
9898
99 !0 = metadata !{metadata !1, metadata !1, i64 0}
100 !1 = metadata !{metadata !"int", metadata !2, i64 0}
101 !2 = metadata !{metadata !"omnipotent char", metadata !3, i64 0}
102 !3 = metadata !{metadata !"Simple C/C++ TBAA"}
103 !4 = metadata !{metadata !5, metadata !5, i64 0}
104 !5 = metadata !{metadata !"any pointer", metadata !2, i64 0}
105 !6 = metadata !{metadata !7, metadata !8, i64 0}
106 !7 = metadata !{metadata !"_ZTS3Foo", metadata !8, i64 0}
107 !8 = metadata !{metadata !"long", metadata !2, i64 0}
108 !9 = metadata !{metadata !10, metadata !5, i64 0}
109 !10 = metadata !{metadata !"_ZTS3Bar", metadata !5, i64 0}
99 !0 = !{!1, !1, i64 0}
100 !1 = !{!"int", !2, i64 0}
101 !2 = !{!"omnipotent char", !3, i64 0}
102 !3 = !{!"Simple C/C++ TBAA"}
103 !4 = !{!5, !5, i64 0}
104 !5 = !{!"any pointer", !2, i64 0}
105 !6 = !{!7, !8, i64 0}
106 !7 = !{!"_ZTS3Foo", !8, i64 0}
107 !8 = !{!"long", !2, i64 0}
108 !9 = !{!10, !5, i64 0}
109 !10 = !{!"_ZTS3Bar", !5, i64 0}
3838 ret i64 %tmp3
3939 }
4040
41 !0 = metadata !{metadata !2, metadata !2, i64 0}
42 !1 = metadata !{metadata !"simple"}
43 !2 = metadata !{metadata !"int", metadata !1}
44 !3 = metadata !{metadata !6, metadata !6, i64 0}
45 !4 = metadata !{metadata !7, metadata !7, i64 0}
46 !5 = metadata !{metadata !8, metadata !8, i64 0}
47 !6 = metadata !{metadata !"float", metadata !1}
48 !7 = metadata !{metadata !"long", metadata !1}
49 !8 = metadata !{metadata !"small", metadata !1}
41 !0 = !{!2, !2, i64 0}
42 !1 = !{!"simple"}
43 !2 = !{!"int", !1}
44 !3 = !{!6, !6, i64 0}
45 !4 = !{!7, !7, i64 0}
46 !5 = !{!8, !8, i64 0}
47 !6 = !{!"float", !1}
48 !7 = !{!"long", !1}
49 !8 = !{!"small", !1}
1414 ret void
1515 }
1616
17 ; CHECK: [[TAGA]] = metadata !{metadata [[TYPEA:!.*]], metadata [[TYPEA]], i64 0}
18 ; CHECK: [[TYPEA]] = metadata !{metadata !"A", metadata !{{.*}}}
19 !0 = metadata !{metadata !3, metadata !3, i64 0}
20 !1 = metadata !{metadata !4, metadata !4, i64 0}
21 !2 = metadata !{metadata !"test"}
22 !3 = metadata !{metadata !"A", metadata !2}
23 !4 = metadata !{metadata !"B", metadata !2}
17 ; CHECK: [[TAGA]] = !{[[TYPEA:!.*]], [[TYPEA]], i64 0}
18 ; CHECK: [[TYPEA]] = !{!"A", !{{.*}}}
19 !0 = !{!3, !3, i64 0}
20 !1 = !{!4, !4, i64 0}
21 !2 = !{!"test"}
22 !3 = !{!"A", !2}
23 !4 = !{!"B", !2}
362362
363363 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" }
364364
365 !0 = metadata !{metadata !1, metadata !1, i64 0}
366 !1 = metadata !{metadata !"any pointer", metadata !2}
367 !2 = metadata !{metadata !"omnipotent char", metadata !3}
368 !3 = metadata !{metadata !"Simple C/C++ TBAA"}
369 !4 = metadata !{metadata !5, metadata !5, i64 0}
370 !5 = metadata !{metadata !"long long", metadata !2}
371 !6 = metadata !{metadata !7, metadata !7, i64 0}
372 !7 = metadata !{metadata !"int", metadata !2}
373 !8 = metadata !{metadata !9, metadata !7, i64 4}
374 !9 = metadata !{metadata !"_ZTS7StructA", metadata !10, i64 0, metadata !7, i64 4, metadata !10, i64 8, metadata !7, i64 12}
375 !10 = metadata !{metadata !"short", metadata !2}
376 !11 = metadata !{metadata !9, metadata !10, i64 0}
377 !12 = metadata !{metadata !13, metadata !7, i64 8}
378 !13 = metadata !{metadata !"_ZTS7StructB", metadata !10, i64 0, metadata !9, i64 4, metadata !7, i64 20}
379 !14 = metadata !{metadata !13, metadata !10, i64 4}
380 !15 = metadata !{metadata !13, metadata !7, i64 20}
381 !16 = metadata !{metadata !13, metadata !7, i64 16}
382 !17 = metadata !{metadata !18, metadata !7, i64 4}
383 !18 = metadata !{metadata !"_ZTS7StructS", metadata !10, i64 0, metadata !7, i64 4}
384 !19 = metadata !{metadata !18, metadata !10, i64 0}
385 !20 = metadata !{metadata !21, metadata !7, i64 4}
386 !21 = metadata !{metadata !"_ZTS8StructS2", metadata !10, i64 0, metadata !7, i64 4}
387 !22 = metadata !{metadata !21, metadata !10, i64 0}
388 !23 = metadata !{metadata !24, metadata !7, i64 12}
389 !24 = metadata !{metadata !"_ZTS7StructC", metadata !10, i64 0, metadata !13, i64 4, metadata !7, i64 28}
390 !25 = metadata !{metadata !26, metadata !7, i64 12}
391 !26 = metadata !{metadata !"_ZTS7StructD", metadata !10, i64 0, metadata !13, i64 4, metadata !7, i64 28, metadata !2, i64 32}
365 !0 = !{!1, !1, i64 0}
366 !1 = !{!"any pointer", !2}
367 !2 = !{!"omnipotent char", !3}
368 !3 = !{!"Simple C/C++ TBAA"}
369 !4 = !{!5, !5, i64 0}
370 !5 = !{!"long long", !2}
371 !6 = !{!7, !7, i64 0}
372 !7 = !{!"int", !2}
373 !8 = !{!9, !7, i64 4}
374 !9 = !{!"_ZTS7StructA", !10, i64 0, !7, i64 4, !10, i64 8, !7, i64 12}
375 !10 = !{!"short", !2}
376 !11 = !{!9, !10, i64 0}
377 !12 = !{!13, !7, i64 8}
378 !13 = !{!"_ZTS7StructB", !10, i64 0, !9, i64 4, !7, i64 20}
379 !14 = !{!13, !10, i64 4}
380 !15 = !{!13, !7, i64 20}
381 !16 = !{!13, !7, i64 16}
382 !17 = !{!18, !7, i64 4}
383 !18 = !{!"_ZTS7StructS", !10, i64 0, !7, i64 4}
384 !19 = !{!18, !10, i64 0}
385 !20 = !{!21, !7, i64 4}
386 !21 = !{!"_ZTS8StructS2", !10, i64 0, !7, i64 4}
387 !22 = !{!21, !10, i64 0}
388 !23 = !{!24, !7, i64 12}
389 !24 = !{!"_ZTS7StructC", !10, i64 0, !13, i64 4, !7, i64 28}
390 !25 = !{!26, !7, i64 12}
391 !26 = !{!"_ZTS7StructD", !10, i64 0, !13, i64 4, !7, i64 28, !2, i64 32}
1111
1212 define i32 @main() nounwind readonly {
1313 %diff1 = alloca i64 ; [#uses=2]
14 call void @llvm.dbg.declare(metadata !{i64* %diff1}, metadata !0, metadata !{metadata !"0x102"})
14 call void @llvm.dbg.declare(metadata i64* %diff1, metadata !0, metadata !{!"0x102"})
1515 store i64 72, i64* %diff1, align 8
1616 %v1 = load %struct.test** @TestArrayPtr, align 8 ; <%struct.test*> [#uses=1]
1717 %v2 = ptrtoint %struct.test* %v1 to i64 ; [#uses=1]
2222
2323 declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
2424
25 !7 = metadata !{metadata !1}
26 !6 = metadata !{metadata !"0x11\0012\00clang version 3.0 (trunk 131941)\001\00\000\00\000", metadata !8, metadata !9, metadata !9, metadata !7, null, null} ; [ DW_TAG_compile_unit ]
27 !0 = metadata !{metadata !"0x100\00c\002\000", metadata !1, metadata !2, metadata !5} ; [ DW_TAG_auto_variable ]
28 !1 = metadata !{metadata !"0x2e\00main\00main\00\001\000\001\000\006\00256\000\001", metadata !8, metadata !2, metadata !3, null, i32 ()* @main, null, null, null} ; [ DW_TAG_subprogram ]
29 !2 = metadata !{metadata !"0x29", metadata !8} ; [ DW_TAG_file_type ]
30 !3 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !8, metadata !2, null, metadata !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
31 !4 = metadata !{metadata !5}
32 !5 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, metadata !6} ; [ DW_TAG_base_type ]
33 !8 = metadata !{metadata !"/d/j/debug-test.c", metadata !"/Volumes/Data/b"}
34 !9 = metadata !{i32 0}
25 !7 = !{!1}
26 !6 = !{!"0x11\0012\00clang version 3.0 (trunk 131941)\001\00\000\00\000", !8, !9, !9, !7, null, null} ; [ DW_TAG_compile_unit ]
27 !0 = !{!"0x100\00c\002\000", !1, !2, !5} ; [ DW_TAG_auto_variable ]
28 !1 = !{!"0x2e\00main\00main\00\001\000\001\000\006\00256\000\001", !8, !2, !3, null, i32 ()* @main, null, null, null} ; [ DW_TAG_subprogram ]
29 !2 = !{!"0x29", !8} ; [ DW_TAG_file_type ]
30 !3 = !{!"0x15\00\000\000\000\000\000\000", !8, !2, null, !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
31 !4 = !{!5}
32 !5 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !6} ; [ DW_TAG_base_type ]
33 !8 = !{!"/d/j/debug-test.c", !"/Volumes/Data/b"}
34 !9 = !{i32 0}
22
33 define void @Foo(i32 %a, i32 %b) {
44 entry:
5 call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !2, metadata !{metadata !"0x102"})
6 ; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata ![[ID2:[0-9]+]], metadata {{.*}})
5 call void @llvm.dbg.value(metadata i32* %1, i64 16, metadata !2, metadata !{!"0x102"})
6 ; CHECK: call void @llvm.dbg.value(metadata i32* %1, i64 16, metadata ![[ID2:[0-9]+]], metadata {{.*}})
77 %0 = add i32 %a, 1 ; [#uses=1]
88 %two = add i32 %b, %0 ; [#uses=0]
99 %1 = alloca i32 ; [#uses=1]
1010
11 call void @llvm.dbg.declare(metadata !{i32* %1}, metadata !{i32* %1}, metadata !{metadata !"0x102"})
12 ; CHECK: call void @llvm.dbg.declare(metadata !{i32* %1}, metadata !{i32* %1}, metadata {{.*}})
13 call void @llvm.dbg.declare(metadata !{i32 %two}, metadata !{i32 %0}, metadata !{metadata !"0x102"})
14 ; CHECK: call void @llvm.dbg.declare(metadata !{i32 %two}, metadata !{i32 %0}, metadata {{.*}})
15 call void @llvm.dbg.declare(metadata !{i32* %1}, metadata !{i32 %b}, metadata !{metadata !"0x102"})
16 ; CHECK: call void @llvm.dbg.declare(metadata !{i32* %1}, metadata !{i32 %b}, metadata {{.*}})
17 call void @llvm.dbg.declare(metadata !{i32 %a}, metadata !{i32 %a}, metadata !{metadata !"0x102"})
18 ; CHECK: call void @llvm.dbg.declare(metadata !{i32 %a}, metadata !{i32 %a}, metadata {{.*}})
19 call void @llvm.dbg.declare(metadata !{i32 %b}, metadata !{i32 %two}, metadata !{metadata !"0x102"})
20 ; CHECK: call void @llvm.dbg.declare(metadata !{i32 %b}, metadata !{i32 %two}, metadata {{.*}})
11 call void @llvm.dbg.declare(metadata i32* %1, metadata i32* %1, metadata !{!"0x102"})
12 ; CHECK: call void @llvm.dbg.declare(metadata i32* %1, metadata i32* %1, metadata {{.*}})
13 call void @llvm.dbg.declare(metadata i32 %two, metadata i32 %0, metadata !{!"0x102"})
14 ; CHECK: call void @llvm.dbg.declare(metadata i32 %two, metadata i32 %0, metadata {{.*}})
15 call void @llvm.dbg.declare(metadata i32* %1, metadata i32 %b, metadata !{!"0x102"})
16 ; CHECK: call void @llvm.dbg.declare(metadata i32* %1, metadata i32 %b, metadata {{.*}})
17 call void @llvm.dbg.declare(metadata i32 %a, metadata i32 %a, metadata !{!"0x102"})
18 ; CHECK: call void @llvm.dbg.declare(metadata i32 %a, metadata i32 %a, metadata {{.*}})
19 call void @llvm.dbg.declare(metadata i32 %b, metadata i32 %two, metadata !{!"0x102"})
20 ; CHECK: call void @llvm.dbg.declare(metadata i32 %b, metadata i32 %two, metadata {{.*}})
2121
22 call void @llvm.dbg.value(metadata !{ i32 %a }, i64 0, metadata !1, metadata !{metadata !"0x102"})
23 ; CHECK: call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata ![[ID1:[0-9]+]], metadata {{.*}})
24 call void @llvm.dbg.value(metadata !{ i32 %0 }, i64 25, metadata !0, metadata !{metadata !"0x102"})
25 ; CHECK: call void @llvm.dbg.value(metadata !{i32 %0}, i64 25, metadata ![[ID0:[0-9]+]], metadata {{.*}})
26 call void @llvm.dbg.value(metadata !{ i32* %1 }, i64 16, metadata !3, metadata !{metadata !"0x102"})
27 ; CHECK: call void @llvm.dbg.value(metadata !{i32* %1}, i64 16, metadata ![[ID3:[0-9]+]], metadata {{.*}})
28 call void @llvm.dbg.value(metadata !3, i64 12, metadata !2, metadata !{metadata !"0x102"})
22 call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata !1, metadata !{!"0x102"})
23 ; CHECK: call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata ![[ID1:[0-9]+]], metadata {{.*}})
24 call void @llvm.dbg.value(metadata i32 %0, i64 25, metadata !0, metadata !{!"0x102"})
25 ; CHECK: call void @llvm.dbg.value(metadata i32 %0, i64 25, metadata ![[ID0:[0-9]+]], metadata {{.*}})
26 call void @llvm.dbg.value(metadata i32* %1, i64 16, metadata !3, metadata !{!"0x102"})
27 ; CHECK: call void @llvm.dbg.value(metadata i32* %1, i64 16, metadata ![[ID3:[0-9]+]], metadata {{.*}})
28 call void @llvm.dbg.value(metadata !3, i64 12, metadata !2, metadata !{!"0x102"})
2929 ; CHECK: call void @llvm.dbg.value(metadata ![[ID3]], i64 12, metadata ![[ID2]], metadata {{.*}})
3030
3131 ret void, !foo !0, !bar !1
3434
3535 !llvm.module.flags = !{!4}
3636
37 !0 = metadata !{i32 662302, i32 26, metadata !1, null}
38 !1 = metadata !{i32 4, metadata !"foo"}
39 !2 = metadata !{metadata !"bar"}
40 !3 = metadata !{metadata !"foo"}
41 !4 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
37 !0 = !{i32 662302, i32 26, !1, null}
38 !1 = !{i32 4, !"foo"}
39 !2 = !{!"bar"}
40 !3 = !{!"foo"}
41 !4 = !{i32 1, !"Debug Info Version", i32 2}
4242
4343 declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
4444 declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnone
4848
4949 ; CHECK: !foo = !{![[FOO]]}
5050 ; CHECK: !bar = !{![[BAR]]}
51 ; CHECK: ![[ID0]] = metadata !{i32 662302, i32 26, metadata ![[ID1]], null}
52 ; CHECK: ![[ID1]] = metadata !{i32 4, metadata !"foo"}
53 ; CHECK: ![[ID2]] = metadata !{metadata !"bar"}
54 ; CHECK: ![[ID3]] = metadata !{metadata !"foo"}
51 ; CHECK: ![[ID0]] = !{i32 662302, i32 26, ![[ID1]], null}
52 ; CHECK: ![[ID1]] = !{i32 4, !"foo"}
53 ; CHECK: ![[ID2]] = !{!"bar"}
54 ; CHECK: ![[ID3]] = !{!"foo"}
1212 ret void
1313 }
1414
15 !0 = metadata !{i32 662302, null}
15 !0 = !{i32 662302, null}
1616 !foo = !{ !0 }
0 ; RUN: not llvm-as < %s 2>&1 | FileCheck %s
11
2 !0 = metadata!
2 !0 = !
33 ; CHECK: expected '{' here
0 ; RUN: not llvm-as < %s 2>&1 | FileCheck %s
11
2 !0 = metadata !{metadata
3 ; CHECK: expected '!' here
2 !0 = !{
3 ; CHECK: expected metadata operand
0 ; RUN: not llvm-as -disable-output < %s 2>&1 | FileCheck %s
1 ; Check common error from old format.
2
3 define void @foo() {
4 ; CHECK: {{.*}}:[[@LINE+1]]:{{[0-9]+}}: error: invalid metadata-value-metadata roundtrip
5 ret void, !bar !{metadata !0}
6 }
7 !0 = !{}
11
22 define void @foo(i32 %v) {
33 entry:
4 ; CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: unexpected operand after function-local metadata
4 ; CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: invalid use of function-local name
55 call void @llvm.bar(metadata !{i32 %v, i32 0})
66 ret void
77 }
11
22 define void @foo(i32 %v) {
33 entry:
4 ; CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: unexpected function-local metadata
4 ; CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: invalid use of function-local name
55 call void @llvm.bar(metadata !{i32 0, i32 %v})
66 ret void
77 }
22 define void @foo(i32 %v) {
33 entry:
44 ; CHECK: :[[@LINE+1]]:{{[0-9]+}}: error: invalid use of function-local name
5 call void @llvm.bar(metadata !{metadata !{i32 %v}})
5 call void @llvm.bar(metadata !{i32 %v})
66 ret void
77 }
88
0 ; RUN: not llvm-as -disable-output < %s 2>&1 | FileCheck %s
1 ; Check common error from old format.
2
3 ; CHECK: {{.*}}:[[@LINE+1]]:{{[0-9]+}}: error: unexpected type in metadata definition
4 !0 = metadata !{}
1010 ret void, !foo !0, !bar !1
1111 }
1212
13 !0 = metadata !{i32 662302, i32 26, metadata !1, null}
14 !1 = metadata !{i32 4, metadata !"foo"}
13 !0 = !{i32 662302, i32 26, !1, null}
14 !1 = !{i32 4, !"foo"}
1515
1616 declare void @llvm.dbg.func.start(metadata) nounwind readnone
1717
0 ; RUN: llvm-as < %s | llvm-dis | FileCheck %s
11 ; RUN: verify-uselistorder %s
22
3 !0 = metadata !{metadata !"zero"}
4 !1 = metadata !{metadata !"one"}
5 !2 = metadata !{metadata !"two"}
3 !0 = !{!"zero"}
4 !1 = !{!"one"}
5 !2 = !{!"two"}
66
77 !foo = !{!0, !1, !2}
88 ; CHECK: !foo = !{!0, !1, !2}
3030 ret void
3131 }
3232
33 ; CHECK: !{metadata !"llvm.loop.interleave.count", i32 4}
34 ; CHECK: !{metadata !"llvm.loop.vectorize.width", i32 8}
35 ; CHECK: !{metadata !"llvm.loop.vectorize.enable", i1 true}
33 ; CHECK: !{!"llvm.loop.interleave.count", i32 4}
34 ; CHECK: !{!"llvm.loop.vectorize.width", i32 8}
35 ; CHECK: !{!"llvm.loop.vectorize.enable", i1 true}
3636
37 !0 = metadata !{metadata !"clang version 3.5.0 (trunk 211528)"}
38 !1 = metadata !{metadata !1, metadata !2, metadata !3, metadata !4, metadata !4}
39 !2 = metadata !{metadata !"llvm.vectorizer.unroll", i32 4}
40 !3 = metadata !{metadata !"llvm.vectorizer.width", i32 8}
41 !4 = metadata !{metadata !"llvm.vectorizer.enable", i1 true}
37 !0 = !{!"clang version 3.5.0 (trunk 211528)"}
38 !1 = !{!1, !2, !3, !4, !4}
39 !2 = !{!"llvm.vectorizer.unroll", i32 4}
40 !3 = !{!"llvm.vectorizer.width", i32 8}
41 !4 = !{!"llvm.vectorizer.enable", i1 true}
14331433 (* End-of-file checks for things like metdata and attributes.
14341434 * CHECK: attributes #0 = {{.*}}uwtable{{.*}}
14351435 * CHECK: !llvm.module.flags = !{!0}
1436 * CHECK: !0 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
1437 * CHECK: !1 = metadata !{i32 1, metadata !"metadata test"}
1438 * CHECK: !2 = metadata !{i32 2, i32 3, metadata !3, metadata !3}
1436 * CHECK: !0 = !{i32 1, !"Debug Info Version", i32 2}
1437 * CHECK: !1 = !{i32 1, !"test"}
1438 * CHECK: !2 = !{i32 2, i32 3, !3, !3}
14391439 *)
14401440
14411441 (*===-- Pass Managers -----------------------------------------------------===*)
1111 !llvm.dbg.cu = !{!0}
1212 !llvm.module.flags = !{!9}
1313
14 !0 = metadata !{metadata !"0x11\0012\00clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)\000\00\000\00\000", metadata !1, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2} ; [ DW_TAG_compile_unit ] [/Users/manmanren/llvm_gmail/release/../llvm/tools/clang/test/CodeGen/debug-info-version.c] [DW_LANG_C99]
15 !1 = metadata !{metadata !"../llvm/tools/clang/test/CodeGen/debug-info-version.c", metadata !"/Users/manmanren/llvm_gmail/release"}
16 !2 = metadata !{i32 0}
17 !3 = metadata !{metadata !4}
18 !4 = metadata !{metadata !"0x2e\00main\00main\00\003\000\001\000\006\00256\000\003", metadata !1, metadata !5, metadata !6, null, i32 ()* @main, null, null, metadata !2} ; [ DW_TAG_subprogram ] [line 3] [def] [main]
19 !5 = metadata !{metadata !"0x29", metadata !1} ; [ DW_TAG_file_type ] [/Users/manmanren/llvm_gmail/release/../llvm/tools/clang/test/CodeGen/debug-info-version.c]
20 !6 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", i32 0, null, null, metadata !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
21 !7 = metadata !{metadata !8}
22 !8 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
23 !9 = metadata !{i32 2, metadata !"Dwarf Version", i32 2}
24 !12 = metadata !{i32 4, i32 0, metadata !4, null}
14 !0 = !{!"0x11\0012\00clang version 3.5 (trunk 195495) (llvm/trunk 195495:195504M)\000\00\000\00\000", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [/Users/manmanren/llvm_gmail/release/../llvm/tools/clang/test/CodeGen/debug-info-version.c] [DW_LANG_C99]
15 !1 = !{!"../llvm/tools/clang/test/CodeGen/debug-info-version.c", !"/Users/manmanren/llvm_gmail/release"}
16 !2 = !{i32 0}
17 !3 = !{!4}
18 !4 = !{!"0x2e\00main\00main\00\003\000\001\000\006\00256\000\003", !1, !5, !6, null, i32 ()* @main, null, null, !2} ; [ DW_TAG_subprogram ] [line 3] [def] [main]
19 !5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/Users/manmanren/llvm_gmail/release/../llvm/tools/clang/test/CodeGen/debug-info-version.c]
20 !6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
21 !7 = !{!8}
22 !8 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
23 !9 = !{i32 2, !"Dwarf Version", i32 2}
24 !12 = !{i32 4, i32 0, !4, null}
2525
2626 ; WARN: warning: ignoring debug info with an invalid version (0)
2727 ; CHECK-NOT: !dbg
77 define void @foo(i32 %v) {
88 ; CHECK: entry:
99 entry:
10 ; CHECK-NEXT: call void @llvm.bar(metadata !{i32 %v})
10 ; CHECK-NEXT: call void @llvm.bar(metadata i32 %v)
1111 call void @llvm.bar(metadata !{i32 %v})
1212
1313 ; Note: these supposedly legal instructions fired an assertion in llvm-as:
3131
3232 declare void @llvm.bar(metadata)
3333
34 ; CHECK: !0 = metadata !{}
34 ; CHECK: !0 = !{}
7474 ; Named metadata Test
7575 ; CHECK: !name = !{!0, !1, !2}
7676 !name = !{!0, !1, !2}
77 ; CHECK: !0 = metadata !{metadata !"zero"}
77 ; CHECK: !0 = !{!"zero"}
7878 !0 = metadata !{metadata !"zero"}
79 ; CHECK: !1 = metadata !{metadata !"one"}
79 ; CHECK: !1 = !{!"one"}
8080 !1 = metadata !{metadata !"one"}
81 ; CHECK: !2 = metadata !{metadata !"two"}
81 ; CHECK: !2 = !{!"two"}
8282 !2 = metadata !{metadata !"two"}
8383
8484
44
55 ; CHECK: !name = !{!0}
66 !name = !{!0}
7 ; CHECK: !0 = metadata !{metadata !"\80"}
8 !0 = metadata !{metadata !"\80"}
7 ; CHECK: !0 = !{!"\80"}
8 !0 = !{!"\80"}
8383 }
8484 !llvm.ldc.classinfo._D6Object7__ClassZ = !{!0}
8585 !llvm.ldc.classinfo._D10ModuleInfo7__ClassZ = !{!1}
86 !0 = metadata !{%object.Object undef, i1 false, i1 false}
87 !1 = metadata !{%object.ModuleInfo undef, i1 false, i1 false}
86 !0 = !{%object.Object undef, i1 false, i1 false}
87 !1 = !{%object.ModuleInfo undef, i1 false, i1 false}
1717
1818 @global = global i32 0
1919
20 ; CHECK: !0 = metadata !{metadata !1, metadata !2, i32* @global, null}
21 ; CHECK: !1 = metadata !{metadata !2, null}
22 ; CHECK: !2 = metadata !{}
20 ; CHECK: !0 = !{!1, !2, i32* @global, null}
21 ; CHECK: !1 = !{!2, null}
22 ; CHECK: !2 = !{}
2323 !0 = metadata !{metadata !1, metadata !2, i32* @global, null}
2424 !1 = metadata !{metadata !2, null}
2525 !2 = metadata !{}
11 ; RUN: verify-uselistorder < %s
22
33 !llvm.foo = !{!0}
4 !0 = metadata !{i32 42}
4 !0 = !{i32 42}
55 @my.str = internal constant [4 x i8] c"foo\00"
2626 ret void
2727 }
2828
29 ; CHECK: !{metadata !"llvm.loop.interleave.count", i32 4}
30 ; CHECK: !{metadata !"llvm.loop.vectorize.width", i32 8}
31 ; CHECK: !{metadata !"llvm.loop.vectorize.enable", i1 true}
29 ; CHECK: !{!"llvm.loop.interleave.count", i32 4}
30 ; CHECK: !{!"llvm.loop.vectorize.width", i32 8}
31 ; CHECK: !{!"llvm.loop.vectorize.enable", i1 true}
3232
3333 !0 = metadata !{metadata !"clang version 3.5.0 (trunk 211528)"}
3434 !1 = metadata !{metadata !1, metadata !2, metadata !3, metadata !4, metadata !4}
33 ; Function Attrs: nounwind
44 define void @_Z4testPiPf(i32* nocapture %pI, float* nocapture %pF) #0 {
55 entry:
6 store i32 0, i32* %pI, align 4, !tbaa !{metadata !"int", metadata !0}
6 store i32 0, i32* %pI, align 4, !tbaa !{!"int", !0}
77 ; CHECK: store i32 0, i32* %pI, align 4, !tbaa [[TAG_INT:!.*]]
88 store float 1.000000e+00, float* %pF, align 4, !tbaa !2
99 ; CHECK: store float 1.000000e+00, float* %pF, align 4, !tbaa [[TAG_FLOAT:!.*]]
1212
1313 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
1414
15 !0 = metadata !{metadata !"omnipotent char", metadata !1}
16 !1 = metadata !{metadata !"Simple C/C++ TBAA"}
17 !2 = metadata !{metadata !"float", metadata !0}
15 !0 = !{!"omnipotent char", !1}
16 !1 = !{!"Simple C/C++ TBAA"}
17 !2 = !{!"float", !0}
1818
19 ; CHECK: [[TAG_INT]] = metadata !{metadata [[TYPE_INT:!.*]], metadata [[TYPE_INT]], i64 0}
20 ; CHECK: [[TYPE_INT]] = metadata !{metadata !"int", metadata [[TYPE_CHAR:!.*]]}
21 ; CHECK: [[TYPE_CHAR]] = metadata !{metadata !"omnipotent char", metadata !{{.*}}
22 ; CHECK: [[TAG_FLOAT]] = metadata !{metadata [[TYPE_FLOAT:!.*]], metadata [[TYPE_FLOAT]], i64 0}
23 ; CHECK: [[TYPE_FLOAT]] = metadata !{metadata !"float", metadata [[TYPE_CHAR]]}
19 ; CHECK: [[TAG_INT]] = !{[[TYPE_INT:!.*]], [[TYPE_INT]], i64 0}
20 ; CHECK: [[TYPE_INT]] = !{!"int", [[TYPE_CHAR:!.*]]}
21 ; CHECK: [[TYPE_CHAR]] = !{!"omnipotent char", !{{.*}}
22 ; CHECK: [[TAG_FLOAT]] = !{[[TYPE_FLOAT:!.*]], [[TYPE_FLOAT]], i64 0}
23 ; CHECK: [[TYPE_FLOAT]] = !{!"float", [[TYPE_CHAR]]}
44 ; Bugpoint should keep the call's metadata attached to the call.
55
66 ; CHECK: call void @foo(), !dbg ![[LOC:[0-9]+]], !attach ![[CALL:[0-9]+]]
7 ; CHECK: ![[LOC]] = metadata !{i32 104, i32 105, metadata ![[SCOPE:[0-9]+]], metadata ![[SCOPE]]}
8 ; CHECK: ![[SCOPE]] = metadata !{metadata !"0x11\000\00me\001\00\000\00\000", metadata ![[FILE:[0-9]+]], metadata ![[LIST:[0-9]+]], metadata ![[LIST]], null, null, null}
9 ; CHECK: ![[FILE]] = metadata !{metadata !"source.c", metadata !"/dir"}
10 ; CHECK: ![[LIST]] = metadata !{i32 0}
11 ; CHECK: ![[CALL]] = metadata !{metadata !"the call to foo"}
7 ; CHECK: ![[LOC]] = !{i32 104, i32 105, ![[SCOPE:[0-9]+]], ![[SCOPE]]}
8 ; CHECK: ![[SCOPE]] = !{!"0x11\000\00me\001\00\000\00\000", ![[FILE:[0-9]+]], ![[LIST:[0-9]+]], ![[LIST]], null, null, null}
9 ; CHECK: ![[FILE]] = !{!"source.c", !"/dir"}
10 ; CHECK: ![[LIST]] = !{i32 0}
11 ; CHECK: ![[CALL]] = !{!"the call to foo"}
1212
1313 %rust_task = type {}
1414 define void @test(i32* %a, i8* %b) {
2424
2525 !llvm.module.flags = !{!17}
2626
27 !0 = metadata !{metadata !"boring"}
28 !1 = metadata !{metadata !"uninteresting"}
29 !2 = metadata !{metadata !"the call to foo"}
30 !3 = metadata !{metadata !"noise"}
31 !4 = metadata !{metadata !"filler"}
27 !0 = !{!"boring"}
28 !1 = !{!"uninteresting"}
29 !2 = !{!"the call to foo"}
30 !3 = !{!"noise"}
31 !4 = !{!"filler"}
3232
33 !9 = metadata !{metadata !"0x11\000\00me\001\00\000\00\000", metadata !15, metadata !16, metadata !16, null, null, null} ; [ DW_TAG_compile_unit ]
34 !10 = metadata !{i32 100, i32 101, metadata !9, metadata !9}
35 !11 = metadata !{i32 102, i32 103, metadata !9, metadata !9}
36 !12 = metadata !{i32 104, i32 105, metadata !9, metadata !9}
37 !13 = metadata !{i32 106, i32 107, metadata !9, metadata !9}
38 !14 = metadata !{i32 108, i32 109, metadata !9, metadata !9}
39 !15 = metadata !{metadata !"source.c", metadata !"/dir"}
40 !16 = metadata !{i32 0}
41 !17 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
33 !9 = !{!"0x11\000\00me\001\00\000\00\000", !15, !16, !16, null, null, null} ; [ DW_TAG_compile_unit ]
34 !10 = !{i32 100, i32 101, !9, !9}
35 !11 = !{i32 102, i32 103, !9, !9}
36 !12 = !{i32 104, i32 105, !9, !9}
37 !13 = !{i32 106, i32 107, !9, !9}
38 !14 = !{i32 108, i32 109, !9, !9}
39 !15 = !{!"source.c", !"/dir"}
40 !16 = !{i32 0}
41 !17 = !{i32 1, !"Debug Info Version", i32 2}
1515 %add53 = add nsw i64 %n1, 0, !dbg !52
1616 %add55 = add nsw i64 %n1, 0, !dbg !53
1717 %mul63 = mul nsw i64 %add53, -20995, !dbg !54
18 tail call void @llvm.dbg.value(metadata !{i64 %mul63}, i64 0, metadata !30, metadata !{metadata !"0x102"}), !dbg !55
18 tail call void @llvm.dbg.value(metadata i64 %mul63, i64 0, metadata !30, metadata !{!"0x102"}), !dbg !55
1919 %mul65 = mul nsw i64 %add55, -3196, !dbg !56
2020 %add67 = add nsw i64 0, %mul65, !dbg !57
2121 %add80 = add i64 0, 1024, !dbg !58
4343 !llvm.module.flags = !{!36, !37}
4444 !llvm.ident = !{!38}
4545
46 !0 = metadata !{metadata !"0x11\0012\00clang version 3.6.0 \001\00\000\00\001", metadata !1, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2} ; [ DW_TAG_compile_unit ] [] [] []
47 !1 = metadata !{metadata !"test.c", metadata !""}
48 !2 = metadata !{}
49 !3 = metadata !{metadata !4}
50 !4 = metadata !{metadata !"0x2e\00\00\00\00140\000\001\000\006\00256\001\00141", metadata !1, metadata !5, metadata !6, null, void ()* @test, null, null, metadata !12} ; [ DW_TAG_subprogram ] [] [] [def] [scope 141] []
51 !5 = metadata !{metadata !"0x29", metadata !1} ; [ DW_TAG_file_type ] [] []
52 !6 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", i32 0, null, null, metadata !7, null, null, null} ; [ DW_TAG_subroutine_type ] [] [] [from ]
53 !7 = metadata !{null, metadata !8}
54 !8 = metadata !{metadata !"0xf\00\000\0064\0064\000\000", null, null, metadata !9} ; [ DW_TAG_pointer_type ] [] [] []
55 !9 = metadata !{metadata !"0x16\00\0030\000\000\000\000", metadata !10, null, metadata !11} ; [ DW_TAG_typedef ] [] [] [] [from int]
56 !10 = metadata !{metadata !"", metadata !""}
57 !11 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [] [int] []
58 !12 = metadata !{metadata !13, metadata !14, metadata !18, metadata !19, metadata !20, metadata !21, metadata !22, metadata !23, metadata !24, metadata !25, metadata !26, metadata !27, metadata !28, metadata !29, metadata !30, metadata !31, metadata !32, metadata !33, metadata !34, metadata !35}
59 !13 = metadata !{metadata !"0x101\00\0016777356\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [] [data] []
60 !14 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
61 !15 = metadata !{metadata !"0x16\00\00183\000\000\000\000", metadata !16, null, metadata !17} ; [ DW_TAG_typedef ] [] [INT32] [] [from long int]
62 !16 = metadata !{metadata !"", metadata !""}
63 !17 = metadata !{metadata !"0x24\00\000\0064\0064\000\000\005", null, null} ; [ DW_TAG_base_type ] [] [long int] []
64 !18 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
65 !19 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
66 !20 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
67 !21 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
68 !22 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
69 !23 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [] [] []
70 !24 = metadata !{metadata !"0x100\00\00142\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
71 !25 = metadata !{metadata !"0x100\00\00143\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
72 !26 = metadata !{metadata !"0x100\00\00143\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
73 !27 = metadata !{metadata !"0x100\00\00143\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
74 !28 = metadata !{metadata !"0x100\00\00143\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
75 !29 = metadata !{metadata !"0x100\00\00144\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
76 !30 = metadata !{metadata !"0x100\00\00144\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
77 !31 = metadata !{metadata !"0x100\00\00144\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
78 !32 = metadata !{metadata !"0x100\00\00144\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
79 !33 = metadata !{metadata !"0x100\00\00144\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [ ] [] []
80 !34 = metadata !{metadata !"0x100\00\00145\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_auto_variable ] [ ] [] []
81 !35 = metadata !{metadata !"0x100\00\00146\000", metadata !4, metadata !5, metadata !11} ; [ DW_TAG_auto_variable ] [ ] [] []
82 !36 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
83 !37 = metadata !{i32 2, metadata !"Debug Info Version", i32 2}
84 !38 = metadata !{metadata !"clang version 3.6.0 "}
85 !39 = metadata !{i32 154, i32 8, metadata !40, null}
86 !40 = metadata !{metadata !"0xb\00154\008\002", metadata !1, metadata !41} ; [ DW_TAG_lexical_block ] [ ] []
87 !41 = metadata !{metadata !"0xb\00154\008\001", metadata !1, metadata !42} ; [ DW_TAG_lexical_block ] [ ] []
88 !42 = metadata !{metadata !"0xb\00154\003\000", metadata !1, metadata !4} ; [ DW_TAG_lexical_block ] [ ] []
89 !43 = metadata !{i32 157, i32 5, metadata !44, null}
90 !44 = metadata !{metadata !"0xb\00154\0042\000", metadata !1, metadata !42} ; [ DW_TAG_lexical_block ] [ ] []
91 !45 = metadata !{i32 159, i32 5, metadata !44, null}
92 !46 = metadata !{metadata !47, metadata !47, i64 0}
93 !47 = metadata !{metadata !"int", metadata !48, i64 0}
94 !48 = metadata !{metadata !"omnipotent char", metadata !49, i64 0}
95 !49 = metadata !{metadata !"Simple C/C++ TBAA"}
96 !50 = metadata !{i32 160, i32 5, metadata !44, null}
97 !51 = metadata !{i32 161, i32 5, metadata !44, null}
98 !52 = metadata !{i32 188, i32 5, metadata !44, null}
99 !53 = metadata !{i32 190, i32 5, metadata !44, null}
100 !54 = metadata !{i32 198, i32 5, metadata !44, null}
101 !55 = metadata !{i32 144, i32 13, metadata !4, null}
102 !56 = metadata !{i32 200, i32 5, metadata !44, null}
103 !57 = metadata !{i32 203, i32 5, metadata !44, null}
104 !58 = metadata !{i32 207, i32 5, metadata !44, null}
105 !59 = metadata !{i32 208, i32 5, metadata !44, null}
46 !0 = !{!"0x11\0012\00clang version 3.6.0 \001\00\000\00\001", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [] [] []
47 !1 = !{!"test.c", !""}
48 !2 = !{}
49 !3 = !{!4}
50 !4 = !{!"0x2e\00\00\00\00140\000\001\000\006\00256\001\00141", !1, !5, !6, null, void ()* @test, null, null, !12} ; [ DW_TAG_subprogram ] [] [] [def] [scope 141] []
51 !5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [] []
52 !6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [] [] [from ]
53 !7 = !{null, !8}
54 !8 = !{!"0xf\00\000\0064\0064\000\000", null, null, !9} ; [ DW_TAG_pointer_type ] [] [] []
55 !9 = !{!"0x16\00\0030\000\000\000\000", !10, null, !11} ; [ DW_TAG_typedef ] [] [] [] [from int]
56 !10 = !{!"", !""}
57 !11 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [] [int] []
58 !12 = !{!13, !14, !18, !19, !20, !21, !22, !23, !24, !25, !26, !27, !28, !29, !30, !31, !32, !33, !34, !35}
59 !13 = !{!"0x101\00\0016777356\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [] [data] []
60 !14 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
61 !15 = !{!"0x16\00\00183\000\000\000\000", !16, null, !17} ; [ DW_TAG_typedef ] [] [INT32] [] [from long int]
62 !16 = !{!"", !""}
63 !17 = !{!"0x24\00\000\0064\0064\000\000\005", null, null} ; [ DW_TAG_base_type ] [] [long int] []
64 !18 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
65 !19 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
66 !20 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
67 !21 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
68 !22 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
69 !23 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [] [] []
70 !24 = !{!"0x100\00\00142\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
71 !25 = !{!"0x100\00\00143\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
72 !26 = !{!"0x100\00\00143\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
73 !27 = !{!"0x100\00\00143\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
74 !28 = !{!"0x100\00\00143\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
75 !29 = !{!"0x100\00\00144\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
76 !30 = !{!"0x100\00\00144\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
77 !31 = !{!"0x100\00\00144\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
78 !32 = !{!"0x100\00\00144\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
79 !33 = !{!"0x100\00\00144\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [ ] [] []
80 !34 = !{!"0x100\00\00145\000", !4, !5, !8} ; [ DW_TAG_auto_variable ] [ ] [] []
81 !35 = !{!"0x100\00\00146\000", !4, !5, !11} ; [ DW_TAG_auto_variable ] [ ] [] []
82 !36 = !{i32 2, !"Dwarf Version", i32 4}
83 !37 = !{i32 2, !"Debug Info Version", i32 2}
84 !38 = !{!"clang version 3.6.0 "}
85 !39 = !{i32 154, i32 8, !40, null}
86 !40 = !{!"0xb\00154\008\002", !1, !41} ; [ DW_TAG_lexical_block ] [ ] []
87 !41 = !{!"0xb\00154\008\001", !1, !42} ; [ DW_TAG_lexical_block ] [ ] []
88 !42 = !{!"0xb\00154\003\000", !1, !4} ; [ DW_TAG_lexical_block ] [ ] []
89 !43 = !{i32 157, i32 5, !44, null}
90 !44 = !{!"0xb\00154\0042\000", !1, !42} ; [ DW_TAG_lexical_block ] [ ] []
91 !45 = !{i32 159, i32 5, !44, null}
92 !46 = !{!47, !47, i64 0}
93 !47 = !{!"int", !48, i64 0}
94 !48 = !{!"omnipotent char", !49, i64 0}
95 !49 = !{!"Simple C/C++ TBAA"}
96 !50 = !{i32 160, i32 5, !44, null}
97 !51 = !{i32 161, i32 5, !44, null}
98 !52 = !{i32 188, i32 5, !44, null}
99 !53 = !{i32 190, i32 5, !44, null}
100 !54 = !{i32 198, i32 5, !44, null}
101 !55 = !{i32 144, i32 13, !4, null}
102 !56 = !{i32 200, i32 5, !44, null}
103 !57 = !{i32 203, i32 5, !44, null}
104 !58 = !{i32 207, i32 5, !44, null}
105 !59 = !{i32 208, i32 5, !44, null}
66 declare void @test_false()
77
88 ; !0 corresponds to a branch being taken, !1 to not being takne.
9 !0 = metadata !{metadata !"branch_weights", i32 64, i32 4}
10 !1 = metadata !{metadata !"branch_weights", i32 4, i32 64}
9 !0 = !{!"branch_weights", i32 64, i32 4}
10 !1 = !{!"branch_weights", i32 4, i32 64}
1111
1212 define void @test_Bcc_fallthrough_taken(i32 %in) nounwind {
1313 ; CHECK-LABEL: test_Bcc_fallthrough_taken:
1010 unreachable
1111
1212 if.else295: ; preds = %entry
13 call void @llvm.dbg.declare(metadata !{i32* %do_tab_convert}, metadata !16, metadata !{metadata !"0x102"}), !dbg !18
13 call void @llvm.dbg.declare(metadata i32* %do_tab_convert, metadata !16, metadata !{!"0x102"}), !dbg !18
1414 store i32 0, i32* %do_tab_convert, align 4, !dbg !19
1515 unreachable
1616 }
2020 !llvm.dbg.gv = !{!0}
2121 !llvm.dbg.sp = !{!1, !7, !10, !11, !12}
2222
23 !0 = metadata !{metadata !"0x34\00vsplive\00vsplive\00\00617\001\001", metadata !1, metadata !2, metadata !6, null, null} ; [ DW_TAG_variable ]
24 !1 = metadata !{metadata !"0x2e\00drt_vsprintf\00drt_vsprintf\00\00616\000\001\000\006\00256\000\000", metadata !20, metadata !2, metadata !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
25 !2 = metadata !{metadata !"0x29", metadata !20} ; [ DW_TAG_file_type ]
26 !3 = metadata !{metadata !"0x11\0012\00clang version 3.0 (http://llvm.org/git/clang.git git:/git/puzzlebox/clang.git/ c4d1aea01c4444eb81bdbf391f1be309127c3cf1)\001\00\000\00\000", metadata !20, metadata !21, metadata !21, null, null, null} ; [ DW_TAG_compile_unit ]
27 !4 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !20, metadata !2, null, metadata !5, i32 0} ; [ DW_TAG_subroutine_type ]
28 !5 = metadata !{metadata !6}
29 !6 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, metadata !3} ; [ DW_TAG_base_type ]
30 !7 = metadata !{metadata !"0x2e\00putc_mem\00putc_mem\00\0030\001\001\000\006\00256\000\000", metadata !20, metadata !2, metadata !8, null, null, null, null, null} ; [ DW_TAG_subprogram ]
31 !8 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !20, metadata !2, null, metadata !9, i32 0} ; [ DW_TAG_subroutine_type ]
32 !9 = metadata !{null}
33 !10 = metadata !{metadata !"0x2e\00print_double\00print_double\00\00203\001\001\000\006\00256\000\000", metadata !20, metadata !2, metadata !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
34 !11 = metadata !{metadata !"0x2e\00print_number\00print_number\00\0075\001\001\000\006\00256\000\000", metadata !20, metadata !2, metadata !4, i32 0, null, null, null, null} ; [ DW_TAG_subprogram ]
35 !12 = metadata !{metadata !"0x2e\00get_flags\00get_flags\00\00508\001\001\000\006\00256\000\000", metadata !20, metadata !2, metadata !8, null, null, null, null, null} ; [ DW_TAG_subprogram ]
36 !13 = metadata !{i32 653, i32 5, metadata !14, null}
37 !14 = metadata !{metadata !"0xb\00652\0035\002", metadata !20, metadata !15} ; [ DW_TAG_lexical_block ]
38 !15 = metadata !{metadata !"0xb\00616\001\000", metadata !20, metadata !1} ; [ DW_TAG_lexical_block ]
39 !16 = metadata !{metadata !"0x100\00do_tab_convert\00853\000", metadata !17, metadata !2, metadata !6} ; [ DW_TAG_auto_variable ]
40 !17 = metadata !{metadata !"0xb\00850\0012\0033", metadata !20, metadata !14} ; [ DW_TAG_lexical_block ]
41 !18 = metadata !{i32 853, i32 11, metadata !17, null}
42 !19 = metadata !{i32 853, i32 29, metadata !17, null}
43 !20 = metadata !{metadata !"print.i", metadata !"/Volumes/Ebi/echeng/radars/r9146594"}
44 !21 = metadata !{i32 0}
23 !0 = !{!"0x34\00vsplive\00vsplive\00\00617\001\001", !1, !2, !6, null, null} ; [ DW_TAG_variable ]
24 !1 = !{!"0x2e\00drt_vsprintf\00drt_vsprintf\00\00616\000\001\000\006\00256\000\000", !20, !2, !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
25 !2 = !{!"0x29", !20} ; [ DW_TAG_file_type ]
26 !3 = !{!"0x11\0012\00clang version 3.0 (http://llvm.org/git/clang.git git:/git/puzzlebox/clang.git/ c4d1aea01c4444eb81bdbf391f1be309127c3cf1)\001\00\000\00\000", !20, !21, !21, null, null, null} ; [ DW_TAG_compile_unit ]
27 !4 = !{!"0x15\00\000\000\000\000\000\000", !20, !2, null, !5, i32 0} ; [ DW_TAG_subroutine_type ]
28 !5 = !{!6}
29 !6 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !3} ; [ DW_TAG_base_type ]
30 !7 = !{!"0x2e\00putc_mem\00putc_mem\00\0030\001\001\000\006\00256\000\000", !20, !2, !8, null, null, null, null, null} ; [ DW_TAG_subprogram ]
31 !8 = !{!"0x15\00\000\000\000\000\000\000", !20, !2, null, !9, i32 0} ; [ DW_TAG_subroutine_type ]
32 !9 = !{null}
33 !10 = !{!"0x2e\00print_double\00print_double\00\00203\001\001\000\006\00256\000\000", !20, !2, !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
34 !11 = !{!"0x2e\00print_number\00print_number\00\0075\001\001\000\006\00256\000\000", !20, !2, !4, i32 0, null, null, null, null} ; [ DW_TAG_subprogram ]
35 !12 = !{!"0x2e\00get_flags\00get_flags\00\00508\001\001\000\006\00256\000\000", !20, !2, !8, null, null, null, null, null} ; [ DW_TAG_subprogram ]
36 !13 = !{i32 653, i32 5, !14, null}
37 !14 = !{!"0xb\00652\0035\002", !20, !15} ; [ DW_TAG_lexical_block ]
38 !15 = !{!"0xb\00616\001\000", !20, !1} ; [ DW_TAG_lexical_block ]
39 !16 = !{!"0x100\00do_tab_convert\00853\000", !17, !2, !6} ; [ DW_TAG_auto_variable ]
40 !17 = !{!"0xb\00850\0012\0033", !20, !14} ; [ DW_TAG_lexical_block ]
41 !18 = !{i32 853, i32 11, !17, null}
42 !19 = !{i32 853, i32 29, !17, null}
43 !20 = !{!"print.i", !"/Volumes/Ebi/echeng/radars/r9146594"}
44 !21 = !{i32 0}
4242
4343 !llvm.module.flags = !{!0, !1, !2, !3}
4444
45 !0 = metadata !{i32 1, metadata !"Objective-C Version", i32 2}
46 !1 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0}
47 !2 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
48 !3 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0}
49 !4 = metadata !{}
45 !0 = !{i32 1, !"Objective-C Version", i32 2}
46 !1 = !{i32 1, !"Objective-C Image Info Version", i32 0}
47 !2 = !{i32 1, !"Objective-C Image Info Section", !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
48 !3 = !{i32 4, !"Objective-C Garbage Collection", i32 0}
49 !4 = !{}
6060
6161 !llvm.module.flags = !{!0, !1, !2, !3}
6262
63 !0 = metadata !{i32 1, metadata !"Objective-C Version", i32 2}
64 !1 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0}
65 !2 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
66 !3 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0}
63 !0 = !{i32 1, !"Objective-C Version", i32 2}
64 !1 = !{i32 1, !"Objective-C Image Info Version", i32 0}
65 !2 = !{i32 1, !"Objective-C Image Info Section", !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
66 !3 = !{i32 4, !"Objective-C Garbage Collection", i32 0}
526526 attributes #4 = { nounwind }
527527 attributes #5 = { nobuiltin }
528528
529 !0 = metadata !{metadata !"int", metadata !1}
530 !1 = metadata !{metadata !"omnipotent char", metadata !2}
531 !2 = metadata !{metadata !"Simple C/C++ TBAA"}
532 !3 = metadata !{metadata !"short", metadata !1}
533 !4 = metadata !{i64 0, i64 4, metadata !0, i64 4, i64 2, metadata !3, i64 8, i64 4, metadata !0, i64 12, i64 2, metadata !3, i64 16, i64 4, metadata !0, i64 20, i64 2, metadata !3}
529 !0 = !{!"int", !1}
530 !1 = !{!"omnipotent char", !2}
531 !2 = !{!"Simple C/C++ TBAA"}
532 !3 = !{!"short", !1}
533 !4 = !{i64 0, i64 4, !0, i64 4, i64 2, !3, i64 8, i64 4, !0, i64 12, i64 2, !3, i64 16, i64 4, !0, i64 20, i64 2, !3}
183183 ; Materializable
184184 declare hidden fastcc void @CleanNet(i64) nounwind ssp
185185
186 !0 = metadata !{metadata !"long", metadata !1}
187 !1 = metadata !{metadata !"omnipotent char", metadata !2}
188 !2 = metadata !{metadata !"Simple C/C++ TBAA"}
189 !3 = metadata !{metadata !"any pointer", metadata !1}
186 !0 = !{!"long", !1}
187 !1 = !{!"omnipotent char", !2}
188 !2 = !{!"Simple C/C++ TBAA"}
189 !3 = !{!"any pointer", !1}
1818 ret void
1919 }
2020
21 !0 = metadata !{metadata !"int", metadata !1}
22 !1 = metadata !{metadata !"omnipotent char", metadata !2}
23 !2 = metadata !{metadata !"Simple C/C++ TBAA"}
21 !0 = !{!"int", !1}
22 !1 = !{!"omnipotent char", !2}
23 !2 = !{!"Simple C/C++ TBAA"}
7171
7272 !llvm.module.flags = !{!0, !1, !2, !3}
7373
74 !0 = metadata !{i32 1, metadata !"Objective-C Version", i32 2}
75 !1 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0}
76 !2 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
77 !3 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0}
78 !4 = metadata !{}
74 !0 = !{i32 1, !"Objective-C Version", i32 2}
75 !1 = !{i32 1, !"Objective-C Image Info Version", i32 0}
76 !2 = !{i32 1, !"Objective-C Image Info Section", !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
77 !3 = !{i32 4, !"Objective-C Garbage Collection", i32 0}
78 !4 = !{}
3333 attributes #0 = { nounwind ssp "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
3434 attributes #1 = { nounwind readnone }
3535
36 !1 = metadata !{metadata !2, metadata !2, i64 0}
37 !2 = metadata !{metadata !"double", metadata !3, i64 0}
38 !3 = metadata !{metadata !"omnipotent char", metadata !4, i64 0}
39 !4 = metadata !{metadata !"Simple C/C++ TBAA"}
36 !1 = !{!2, !2, i64 0}
37 !2 = !{!"double", !3, i64 0}
38 !3 = !{!"omnipotent char", !4, i64 0}
39 !4 = !{!"Simple C/C++ TBAA"}
1010
1111 declare i32 @llvm.read_register.i32(metadata) nounwind
1212
13 !0 = metadata !{metadata !"x5\00"}
13 !0 = !{!"x5\00"}
99
1010 declare i32 @llvm.read_register.i32(metadata) nounwind
1111
12 !0 = metadata !{metadata !"notareg\00"}
12 !0 = !{!"notareg\00"}
116116
117117 declare void @llvm.prefetch(i8* nocapture, i32, i32, i32) nounwind
118118
119 !0 = metadata !{metadata !"int", metadata !1}
120 !1 = metadata !{metadata !"omnipotent char", metadata !2}
121 !2 = metadata !{metadata !"Simple C/C++ TBAA"}
122 !3 = metadata !{metadata !"any pointer", metadata !1}
119 !0 = !{!"int", !1}
120 !1 = !{!"omnipotent char", !2}
121 !2 = !{!"Simple C/C++ TBAA"}
122 !3 = !{!"any pointer", !1}
2020
2121 ; register unsigned long current_stack_pointer asm("sp");
2222 ; CHECK-NOT: .asciz "sp"
23 !0 = metadata !{metadata !"sp\00"}
23 !0 = !{!"sp\00"}
2121
2222 !llvm.ident = !{!0}
2323
24 !0 = metadata !{metadata !"clang version 3.6.0 "}
25 !1 = metadata !{metadata !2, metadata !2, i64 0}
26 !2 = metadata !{metadata !"any pointer", metadata !3, i64 0}
27 !3 = metadata !{metadata !"omnipotent char", metadata !4, i64 0}
28 !4 = metadata !{metadata !"Simple C/C++ TBAA"}
29 !5 = metadata !{metadata !6, metadata !6, i64 0}
30 !6 = metadata !{metadata !"int", metadata !3, i64 0}
24 !0 = !{!"clang version 3.6.0 "}
25 !1 = !{!2, !2, i64 0}
26 !2 = !{!"any pointer", !3, i64 0}
27 !3 = !{!"omnipotent char", !4, i64 0}
28 !4 = !{!"Simple C/C++ TBAA"}
29 !5 = !{!6, !6, i64 0}
30 !6 = !{!"int", !3, i64 0}
77
88 !llvm.ident = !{!0}
99
10 !0 = metadata !{metadata !"some LLVM version"}
10 !0 = !{!"some LLVM version"}
1111
3737
3838 declare i64 @bar()
3939
40 !0 = metadata !{metadata !"branch_weights", i32 5128, i32 32}
41 !1 = metadata !{metadata !"branch_weights", i32 1024, i32 4136}
40 !0 = !{!"branch_weights", i32 5128, i32 32}
41 !1 = !{!"branch_weights", i32 1024, i32 4136}
1515 ret i64 0
1616 }
1717
18 !0 = metadata !{metadata !"branch_weights", i32 0, i32 2147483647}
18 !0 = !{!"branch_weights", i32 0, i32 2147483647}
290290 ret i32 0
291291 }
292292
293 !0 = metadata !{metadata !"branch_weights", i32 0, i32 2147483647}
294 !1 = metadata !{metadata !"branch_weights", i32 2147483647, i32 0}
293 !0 = !{!"branch_weights", i32 0, i32 2147483647}
294 !1 = !{!"branch_weights", i32 2147483647, i32 0}
270270 %retval.0 = phi i32 [ 0, %entry ], [ 1, %land.lhs.true52 ], [ 1, %land.lhs.true43 ], [ 0, %if.else123 ], [ 1, %while.cond59.preheader ], [ 1, %while.cond95.preheader ], [ 1, %while.cond130.preheader ], [ 1, %land.lhs.true28 ], [ 1, %if.then83 ], [ 0, %lor.lhs.false74 ], [ 1, %land.rhs ], [ 1, %if.then117 ], [ 0, %while.body104 ], [ 1, %land.rhs99 ], [ 1, %if.then152 ], [ 0, %while.body139 ], [ 1, %land.rhs134 ], [ 0, %while.body ]
271271 ret i32 %retval.0
272272 }
273 !181 = metadata !{metadata !"branch_weights", i32 662038, i32 1}
274 !988 = metadata !{metadata !"branch_weights", i32 12091450, i32 1916}
275 !989 = metadata !{metadata !"branch_weights", i32 7564670, i32 4526781}
276 !990 = metadata !{metadata !"branch_weights", i32 7484958, i32 13283499}
277 !991 = metadata !{metadata !"branch_weights", i32 8677007, i32 4606493}
278 !992 = metadata !{metadata !"branch_weights", i32 -1172426948, i32 145094705}
279 !993 = metadata !{metadata !"branch_weights", i32 1468914, i32 5683688}
280 !994 = metadata !{metadata !"branch_weights", i32 114025221, i32 -1217548794, i32 -1199521551, i32 87712616}
281 !995 = metadata !{metadata !"branch_weights", i32 1853716452, i32 -444717951, i32 932776759}
282 !996 = metadata !{metadata !"branch_weights", i32 1004870, i32 20259}
283 !997 = metadata !{metadata !"branch_weights", i32 20071, i32 189}
284 !998 = metadata !{metadata !"branch_weights", i32 -1020255939, i32 572177766}
285 !999 = metadata !{metadata !"branch_weights", i32 2666513, i32 3466431}
286 !1000 = metadata !{metadata !"branch_weights", i32 5117635, i32 1859780}
287 !1001 = metadata !{metadata !"branch_weights", i32 354902465, i32 -1444604407}
288 !1002 = metadata !{metadata !"branch_weights", i32 -1762419279, i32 1592770684}
289 !1003 = metadata !{metadata !"branch_weights", i32 1435905930, i32 -1951930624}
290 !1004 = metadata !{metadata !"branch_weights", i32 1, i32 504888}
291 !1005 = metadata !{metadata !"branch_weights", i32 94662, i32 504888}
292 !1006 = metadata !{metadata !"branch_weights", i32 -1897793104, i32 160196332}
293 !1007 = metadata !{metadata !"branch_weights", i32 2074643678, i32 -29579071}
294 !1008 = metadata !{metadata !"branch_weights", i32 1, i32 226163}
295 !1009 = metadata !{metadata !"branch_weights", i32 58357, i32 226163}
296 !1010 = metadata !{metadata !"branch_weights", i32 -2072848646, i32 92907517}
273 !181 = !{!"branch_weights", i32 662038, i32 1}
274 !988 = !{!"branch_weights", i32 12091450, i32 1916}
275 !989 = !{!"branch_weights", i32 7564670, i32 4526781}
276 !990 = !{!"branch_weights", i32 7484958, i32 13283499}
277 !991 = !{!"branch_weights", i32 8677007, i32 4606493}
278 !992 = !{!"branch_weights", i32 -1172426948, i32 145094705}
279 !993 = !{!"branch_weights", i32 1468914, i32 5683688}
280 !994 = !{!"branch_weights", i32 114025221, i32 -1217548794, i32 -1199521551, i32 87712616}
281 !995 = !{!"branch_weights", i32 1853716452, i32 -444717951, i32 932776759}
282 !996 = !{!"branch_weights", i32 1004870, i32 20259}
283 !997 = !{!"branch_weights", i32 20071, i32 189}
284 !998 = !{!"branch_weights", i32 -1020255939, i32 572177766}
285 !999 = !{!"branch_weights", i32 2666513, i32 3466431}
286 !1000 = !{!"branch_weights", i32 5117635, i32 1859780}
287 !1001 = !{!"branch_weights", i32 354902465, i32 -1444604407}
288 !1002 = !{!"branch_weights", i32 -1762419279, i32 1592770684}
289 !1003 = !{!"branch_weights", i32 1435905930, i32 -1951930624}
290 !1004 = !{!"branch_weights", i32 1, i32 504888}
291 !1005 = !{!"branch_weights", i32 94662, i32 504888}
292 !1006 = !{!"branch_weights", i32 -1897793104, i32 160196332}
293 !1007 = !{!"branch_weights", i32 2074643678, i32 -29579071}
294 !1008 = !{!"branch_weights", i32 1, i32 226163}
295 !1009 = !{!"branch_weights", i32 58357, i32 226163}
296 !1010 = !{!"branch_weights", i32 -2072848646, i32 92907517}
88 br label %do.body, !dbg !0
99
1010 do.body: ; preds = %entry
11 call void @llvm.dbg.declare(metadata !{i32* %count_}, metadata !4, metadata !{metadata !"0x102"})
11 call void @llvm.dbg.declare(metadata i32* %count_, metadata !4, metadata !{!"0x102"})
1212 %conv = ptrtoint i32* %count_ to i32, !dbg !0 ; [#uses=1]
1313 %call = call i32 @foo(i32 %conv) ssp, !dbg !0 ; [#uses=0]
1414 br label %do.end, !dbg !0
2121
2222 declare i32 @foo(i32) ssp
2323
24 !0 = metadata !{i32 5, i32 2, metadata !1, null}
25 !1 = metadata !{metadata !"0xb\001\001\000", null, metadata !2}; [DW_TAG_lexical_block ]
26 !2 = metadata !{metadata !"0x2e\00bar\00bar\00bar\004\000\001\000\006\000\000\000", i32 0, metadata !3, null, null, null, null, null, null}; [DW_TAG_subprogram ]
27 !3 = metadata !{metadata !"0x11\0012\00clang 1.1\001\00\000\00\000", metadata !8, null, metadata !9, null, null, null}; [DW_TAG_compile_unit ]
28 !4 = metadata !{metadata !"0x100\00count_\005\000", metadata !5, metadata !3, metadata !6}; [ DW_TAG_auto_variable ]
29 !5 = metadata !{metadata !"0xb\001\001\000", null, metadata !1}; [DW_TAG_lexical_block ]
30 !6 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, metadata !3}; [DW_TAG_base_type ]
31 !7 = metadata !{i32 6, i32 1, metadata !2, null}
32 !8 = metadata !{metadata !"genmodes.i", metadata !"/Users/yash/Downloads"}
33 !9 = metadata !{i32 0}
24 !0 = !{i32 5, i32 2, !1, null}
25 !1 = !{!"0xb\001\001\000", null, !2}; [DW_TAG_lexical_block ]
26 !2 = !{!"0x2e\00bar\00bar\00bar\004\000\001\000\006\000\000\000", i32 0, !3, null, null, null, null, null, null}; [DW_TAG_subprogram ]
27 !3 = !{!"0x11\0012\00clang 1.1\001\00\000\00\000", !8, null, !9, null, null, null}; [DW_TAG_compile_unit ]
28 !4 = !{!"0x100\00count_\005\000", !5, !3, !6}; [ DW_TAG_auto_variable ]
29 !5 = !{!"0xb\001\001\000", null, !1}; [DW_TAG_lexical_block ]
30 !6 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !3}; [DW_TAG_base_type ]
31 !7 = !{i32 6, i32 1, !2, null}
32 !8 = !{!"genmodes.i", !"/Users/yash/Downloads"}
33 !9 = !{i32 0}
44
55 define hidden i32 @__addvsi3(i32 %a, i32 %b) nounwind {
66 entry:
7 tail call void @llvm.dbg.value(metadata !{i32 %b}, i64 0, metadata !0, metadata !{metadata !"0x102"})
7 tail call void @llvm.dbg.value(metadata i32 %b, i64 0, metadata !0, metadata !{!"0x102"})
88 %0 = add nsw i32 %b, %a, !dbg !9 ; [#uses=1]
99 ret i32 %0, !dbg !11
1010 }
1313
1414 !llvm.dbg.cu = !{!3}
1515 !llvm.module.flags = !{!15}
16 !0 = metadata !{metadata !"0x101\00b\0093\000", metadata !1, metadata !2, metadata !6} ; [ DW_TAG_arg_variable ]
17 !1 = metadata !{metadata !"0x2e\00__addvsi3\00__addvsi3\00__addvsi3\0094\000\001\000\006\000\000\000", metadata !12, null, metadata !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
18 !2 = metadata !{metadata !"0x29", metadata !12} ; [ DW_TAG_file_type ]
19 !12 = metadata !{metadata !"libgcc2.c", metadata !"/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc"}
20 !3 = metadata !{metadata !"0x11\001\004.2.1 (Based on Apple Inc. build 5658) (LLVM build 00)\001\00\000\00\000", metadata !12, metadata !13, metadata !13, metadata !14, null, null} ; [ DW_TAG_compile_unit ]
21 !4 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !12, metadata !2, null, metadata !5, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
22 !5 = metadata !{metadata !6, metadata !6, metadata !6}
23 !6 = metadata !{metadata !"0x16\00SItype\00152\000\000\000\000", metadata !12, null, metadata !8} ; [ DW_TAG_typedef ]
24 !7 = metadata !{metadata !"0x29", metadata !"libgcc2.h", metadata !"/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc", metadata !3} ; [ DW_TAG_file_type ]
25 !8 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", metadata !12, metadata !2} ; [ DW_TAG_base_type ]
26 !9 = metadata !{i32 95, i32 0, metadata !10, null}
27 !10 = metadata !{metadata !"0xb\0094\000\000", metadata !12, metadata !1} ; [ DW_TAG_lexical_block ]
28 !11 = metadata !{i32 100, i32 0, metadata !10, null}
29 !13 = metadata !{i32 0}
30 !14 = metadata !{metadata !1}
31 !15 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
16 !0 = !{!"0x101\00b\0093\000", !1, !2, !6} ; [ DW_TAG_arg_variable ]
17 !1 = !{!"0x2e\00__addvsi3\00__addvsi3\00__addvsi3\0094\000\001\000\006\000\000\000", !12, null, !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
18 !2 = !{!"0x29", !12} ; [ DW_TAG_file_type ]
19 !12 = !{!"libgcc2.c", !"/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc"}
20 !3 = !{!"0x11\001\004.2.1 (Based on Apple Inc. build 5658) (LLVM build 00)\001\00\000\00\000", !12, !13, !13, !14, null, null} ; [ DW_TAG_compile_unit ]
21 !4 = !{!"0x15\00\000\000\000\000\000\000", !12, !2, null, !5, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
22 !5 = !{!6, !6, !6}
23 !6 = !{!"0x16\00SItype\00152\000\000\000\000", !12, null, !8} ; [ DW_TAG_typedef ]
24 !7 = !{!"0x29", !"libgcc2.h", !"/Users/bwilson/local/nightly/test-2010-04-14/build/llvmgcc.roots/llvmgcc~obj/src/gcc", !3} ; [ DW_TAG_file_type ]
25 !8 = !{!"0x24\00int\000\0032\0032\000\000\005", !12, !2} ; [ DW_TAG_base_type ]
26 !9 = !{i32 95, i32 0, !10, null}
27 !10 = !{!"0xb\0094\000\000", !12, !1} ; [ DW_TAG_lexical_block ]
28 !11 = !{i32 100, i32 0, !10, null}
29 !13 = !{i32 0}
30 !14 = !{!1}
31 !15 = !{i32 1, !"Debug Info Version", i32 2}
66
77 define void @x0(i8* nocapture %buf, i32 %nbytes) nounwind optsize {
88 entry:
9 tail call void @llvm.dbg.value(metadata !{i8* %buf}, i64 0, metadata !0, metadata !{metadata !"0x102"}), !dbg !15
10 tail call void @llvm.dbg.value(metadata !{i32 %nbytes}, i64 0, metadata !8, metadata !{metadata !"0x102"}), !dbg !16
9 tail call void @llvm.dbg.value(metadata i8* %buf, i64 0, metadata !0, metadata !{!"0x102"}), !dbg !15
10 tail call void @llvm.dbg.value(metadata i32 %nbytes, i64 0, metadata !8, metadata !{!"0x102"}), !dbg !16
1111 %tmp = load i32* @length, !dbg !17 ; [#uses=3]
1212 %cmp = icmp eq i32 %tmp, -1, !dbg !17 ; [#uses=1]
1313 %cmp.not = xor i1 %cmp, true ; [#uses=1]
1414 %cmp3 = icmp ult i32 %tmp, %nbytes, !dbg !17 ; [#uses=1]
1515 %or.cond = and i1 %cmp.not, %cmp3 ; [#uses=1]
16 tail call void @llvm.dbg.value(metadata !{i32 %tmp}, i64 0, metadata !8, metadata !{metadata !"0x102"}), !dbg !17
16 tail call void @llvm.dbg.value(metadata i32 %tmp, i64 0, metadata !8, metadata !{!"0x102"}), !dbg !17
1717 %nbytes.addr.0 = select i1 %or.cond, i32 %tmp, i32 %nbytes ; [#uses=1]
18 tail call void @llvm.dbg.value(metadata !18, i64 0, metadata !10, metadata !{metadata !"0x102"}), !dbg !19
18 tail call void @llvm.dbg.value(metadata i32 0, i64 0, metadata !10, metadata !{!"0x102"}), !dbg !19
1919 br label %while.cond, !dbg !20
2020
2121 while.cond: ; preds = %while.body, %entry
4646 !llvm.dbg.lv.fn = !{!0, !8, !10, !12}
4747 !llvm.dbg.gv = !{!14}
4848
49 !0 = metadata !{metadata !"0x101\00buf\004\000", metadata !1, metadata !2, metadata !6} ; [ DW_TAG_arg_variable ]
50 !1 = metadata !{metadata !"0x2e\00x0\00x0\00x0\005\000\001\000\006\000\000\000", metadata !26, null, metadata !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
51 !2 = metadata !{metadata !"0x29", metadata !26} ; [ DW_TAG_file_type ]
52 !3 = metadata !{metadata !"0x11\0012\00clang 2.0\001\00\00\00\00", metadata !26, null, null, null, null, null} ; [ DW_TAG_compile_unit ]
53 !4 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !26, metadata !2, null, metadata !5, null} ; [ DW_TAG_subroutine_type ]
54 !5 = metadata !{null}
55 !6 = metadata !{metadata !"0xf\00\000\0032\0032\000\000", metadata !26, metadata !2, metadata !7} ; [ DW_TAG_pointer_type ]
56 !7 = metadata !{metadata !"0x24\00unsigned char\000\008\008\000\000\008", metadata !26, metadata !2} ; [ DW_TAG_base_type ]
57 !8 = metadata !{metadata !"0x101\00nbytes\004\000", metadata !1, metadata !2, metadata !9} ; [ DW_TAG_arg_variable ]
58 !9 = metadata !{metadata !"0x24\00unsigned long\000\0032\0032\000\000\007", metadata !26, metadata !2} ; [ DW_TAG_base_type ]
59 !10 = metadata !{metadata !"0x100\00nread\006\000", metadata !11, metadata !2, metadata !9} ; [ DW_TAG_auto_variable ]
60 !11 = metadata !{metadata !"0xb\005\001\000", metadata !26, metadata !1} ; [ DW_TAG_lexical_block ]
61 !12 = metadata !{metadata !"0x100\00c\007\000", metadata !11, metadata !2, metadata !13} ; [ DW_TAG_auto_variable ]
62 !13 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", metadata !26, metadata !2} ; [ DW_TAG_base_type ]
63 !14 = metadata !{metadata !"0x34\00length\00length\00length\001\000\001", metadata !2, metadata !2, metadata !13, i32* @length} ; [ DW_TAG_variable ]
64 !15 = metadata !{i32 4, i32 24, metadata !1, null}
65 !16 = metadata !{i32 4, i32 43, metadata !1, null}
66 !17 = metadata !{i32 9, i32 2, metadata !11, null}
67 !18 = metadata !{i32 0}
68 !19 = metadata !{i32 10, i32 2, metadata !11, null}
69 !20 = metadata !{i32 11, i32 2, metadata !11, null}
70 !21 = metadata !{i32 12, i32 3, metadata !22, null}
71 !22 = metadata !{metadata !"0xb\0011\0045\000", metadata !26, metadata !11} ; [ DW_TAG_lexical_block ]
72 !23 = metadata !{i32 13, i32 3, metadata !22, null}
73 !24 = metadata !{i32 14, i32 2, metadata !22, null}
74 !25 = metadata !{i32 15, i32 1, metadata !11, null}
75 !26 = metadata !{metadata !"t.c", metadata !"/private/tmp"}
49 !0 = !{!"0x101\00buf\004\000", !1, !2, !6} ; [ DW_TAG_arg_variable ]
50 !1 = !{!"0x2e\00x0\00x0\00x0\005\000\001\000\006\000\000\000", !26, null, !4, null, null, null, null, null} ; [ DW_TAG_subprogram ]
51 !2 = !{!"0x29", !26} ; [ DW_TAG_file_type ]
52 !3 = !{!"0x11\0012\00clang 2.0\001\00\00\00\00", !26, null, null, null, null, null} ; [ DW_TAG_compile_unit ]
53 !4 = !{!"0x15\00\000\000\000\000\000\000", !26, !2, null, !5, null} ; [ DW_TAG_subroutine_type ]
54 !5 = !{null}
55 !6 = !{!"0xf\00\000\0032\0032\000\000", !26, !2, !7} ; [ DW_TAG_pointer_type ]
56 !7 = !{!"0x24\00unsigned char\000\008\008\000\000\008", !26, !2} ; [ DW_TAG_base_type ]
57 !8 = !{!"0x101\00nbytes\004\000", !1, !2, !9} ; [ DW_TAG_arg_variable ]
58 !9 = !{!"0x24\00unsigned long\000\0032\0032\000\000\007", !26, !2} ; [ DW_TAG_base_type ]
59 !10 = !{!"0x100\00nread\006\000", !11, !2, !9} ; [ DW_TAG_auto_variable ]
60 !11 = !{!"0xb\005\001\000", !26, !1} ; [ DW_TAG_lexical_block ]
61 !12 = !{!"0x100\00c\007\000", !11, !2, !13} ; [ DW_TAG_auto_variable ]
62 !13 = !{!"0x24\00int\000\0032\0032\000\000\005", !26, !2} ; [ DW_TAG_base_type ]
63 !14 = !{!"0x34\00length\00length\00length\001\000\001", !2, !2, !13, i32* @length} ; [ DW_TAG_variable ]
64 !15 = !{i32 4, i32 24, !1, null}
65 !16 = !{i32 4, i32 43, !1, null}
66 !17 = !{i32 9, i32 2, !11, null}
67 !18 = !{i32 0}
68 !19 = !{i32 10, i32 2, !11, null}
69 !20 = !{i32 11, i32 2, !11, null}
70 !21 = !{i32 12, i32 3, !22, null}
71 !22 = !{!"0xb\0011\0045\000", !26, !11} ; [ DW_TAG_lexical_block ]
72 !23 = !{i32 13, i32 3, !22, null}
73 !24 = !{i32 14, i32 2, !22, null}
74 !25 = !{i32 15, i32 1, !11, null}
75 !26 = !{!"t.c", !"/private/tmp"}
55 define i32 @_Z3fooi4SVal(i32 %i, %struct.SVal* noalias %location) nounwind ssp {
66 entry:
77 %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
8 call void @llvm.dbg.value(metadata !{i32 %i}, i64 0, metadata !23, metadata !{metadata !"0x102"}), !dbg !24
9 call void @llvm.dbg.value(metadata !{%struct.SVal* %location}, i64 0, metadata !25, metadata !{metadata !"0x102"}), !dbg !24
8 call void @llvm.dbg.value(metadata i32 %i, i64 0, metadata !23, metadata !{!"0x102"}), !dbg !24
9 call void @llvm.dbg.value(metadata %struct.SVal* %location, i64 0, metadata !25, metadata !{!"0x102"}), !dbg !24
1010 %0 = icmp ne i32 %i, 0, !dbg !27 ; [#uses=1]
1111 br i1 %0, label %bb, label %bb1, !dbg !27
1212
3333 define linkonce_odr void @_ZN4SValC1Ev(%struct.SVal* %this) nounwind ssp align 2 {
3434 entry:
3535 %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
36 call void @llvm.dbg.value(metadata !{%struct.SVal* %this}, i64 0, metadata !31, metadata !{metadata !"0x102"}), !dbg !34
36 call void @llvm.dbg.value(metadata %struct.SVal* %this, i64 0, metadata !31, metadata !{!"0x102"}), !dbg !34
3737 %0 = getelementptr inbounds %struct.SVal* %this, i32 0, i32 0, !dbg !34 ; [#uses=1]
3838 store i8* null, i8** %0, align 8, !dbg !34
3939 %1 = getelementptr inbounds %struct.SVal* %this, i32 0, i32 1, !dbg !34 ; [#uses=1]
5151 %0 = alloca %struct.SVal ; <%struct.SVal*> [#uses=3]
5252 %v = alloca %struct.SVal ; <%struct.SVal*> [#uses=4]
5353 %"alloca point" = bitcast i32 0 to i32 ; [#uses=0]
54 call void @llvm.dbg.declare(metadata !{%struct.SVal* %v}, metadata !38, metadata !{metadata !"0x102"}), !dbg !41
54 call void @llvm.dbg.declare(metadata %struct.SVal* %v, metadata !38, metadata !{!"0x102"}), !dbg !41
5555 call void @_ZN4SValC1Ev(%struct.SVal* %v) nounwind, !dbg !41
5656 %1 = getelementptr inbounds %struct.SVal* %v, i32 0, i32 1, !dbg !42 ; [#uses=1]
5757 store i32 1, i32* %1, align 8, !dbg !42
6464 %7 = load i32* %6, align 8, !dbg !43 ; [#uses=1]
6565 store i32 %7, i32* %5, align 8, !dbg !43
6666 %8 = call i32 @_Z3fooi4SVal(i32 2, %struct.SVal* noalias %0) nounwind, !dbg !43 ; [#uses=0]
67 call void @llvm.dbg.value(metadata !{i32 %8}, i64 0, metadata !44, metadata !{metadata !"0x102"}), !dbg !43
67 call void @llvm.dbg.value(metadata i32 %8, i64 0, metadata !44, metadata !{!"0x102"}), !dbg !43
6868 br label %return, !dbg !45
6969
7070 return: ; preds = %entry
7676 !llvm.dbg.cu = !{!3}
7777 !llvm.module.flags = !{!49}
7878
79 !0 = metadata !{metadata !"0x2e\00SVal\00SVal\00\0011\000\000\000\006\000\000\000", metadata !48, metadata !1, metadata !14, null, null, null, null, null} ; [ DW_TAG_subprogram ]
80 !1 = metadata !{metadata !"0x13\00SVal\001\00128\0064\000\000\000", metadata !48, null, null, metadata !4, null, null, null} ; [ DW_TAG_structure_type ] [SVal] [line 1, size 128, align 64, offset 0] [def] [from ]
81 !2 = metadata !{metadata !"0x29", metadata !48} ; [ DW_TAG_file_type ]
82 !3 = metadata !{metadata !"0x11\004\004.2.1 (Based on Apple Inc. build 5658) (LLVM build)\000\00\000\00\001", metadata !48, metadata !47, metadata !47, metadata !46, metadata !47, metadata !47} ; [ DW_TAG_compile_unit ]
83 !4 = metadata !{metadata !5, metadata !7, metadata !0, metadata !9}
84 !5 = metadata !{metadata !"0xd\00Data\007\0064\0064\000\000", metadata !48, metadata !1, metadata !6} ; [ DW_TAG_member ]
85 !6 = metadata !{metadata !"0xf\00\000\0064\0064\000\000", metadata !48, null, null} ; [ DW_TAG_pointer_type ]
86 !7 = metadata !{metadata !"0xd\00Kind\008\0032\0032\0064\000", metadata !48, metadata !1, metadata !8} ; [ DW_TAG_member ]
87 !8 = metadata !{metadata !"0x24\00unsigned int\000\0032\0032\000\000\007", metadata !48, null} ; [ DW_TAG_base_type ]
88 !9 = metadata !{metadata !"0x2e\00~SVal\00~SVal\00\0012\000\000\000\006\000\000\000", metadata !48, metadata !1, metadata !10, null, null, null, null, null} ; [ DW_TAG_subprogram ]
89 !10 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !48, null, null, metadata !11, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
90 !11 = metadata !{null, metadata !12, metadata !13}
91 !12 = metadata !{metadata !"0xf\00\000\0064\0064\000\0064", metadata !48, null, metadata !1} ; [ DW_TAG_pointer_type ]
92 !13 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", metadata !48, null} ; [ DW_TAG_base_type ]
93 !14 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !48, null, null, metadata !15, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
94 !15 = metadata !{null, metadata !12}
95 !16 = metadata !{metadata !"0x2e\00SVal\00SVal\00_ZN4SValC1Ev\0011\000\001\000\006\000\000\000", metadata !48, metadata !1, metadata !14, null, void (%struct.SVal*)* @_ZN4SValC1Ev, null, null, null} ; [ DW_TAG_subprogram ]
96 !17 = metadata !{metadata !"0x2e\00foo\00foo\00_Z3fooi4SVal\0016\000\001\000\006\000\000\000", metadata !48, metadata !2, metadata !18, null, i32 (i32, %struct.SVal*)* @_Z3fooi4SVal, null, null, null} ; [ DW_TAG_subprogram ]
97 !18 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !48, null, null, metadata !19, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
98 !19 = metadata !{metadata !13, metadata !13, metadata !1}
99 !20 = metadata !{metadata !"0x2e\00main\00main\00main\0023\000\001\000\006\000\000\000", metadata !48, metadata !2, metadata !21, null, i32 ()* @main, null, null, null} ; [ DW_TAG_subprogram ]
100 !21 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !48, null, null, metadata !22, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
101 !22 = metadata !{metadata !13}
102 !23 = metadata !{metadata !"0x101\00i\0016\000", metadata !17, metadata !2, metadata !13} ; [ DW_TAG_arg_variable ]
103 !24 = metadata !{i32 16, i32 0, metadata !17, null}
104 !25 = metadata !{metadata !"0x101\00location\0016\000", metadata !17, metadata !2, metadata !26} ; [ DW_TAG_arg_variable ]
105 !26 = metadata !{metadata !"0x10\00SVal\000\0064\0064\000\000", metadata !48, metadata !2, metadata !1} ; [ DW_TAG_reference_type ]
106 !27 = metadata !{i32 17, i32 0, metadata !28, null}
107 !28 = metadata !{metadata !"0xb\0016\000\002", metadata !2, metadata !17} ; [ DW_TAG_lexical_block ]
108 !29 = metadata !{i32 18, i32 0, metadata !28, null}
109 !30 = metadata !{i32 20, i32 0, metadata !28, null}
110 !31 = metadata !{metadata !"0x101\00this\0011\000", metadata !16, metadata !2, metadata !32} ; [ DW_TAG_arg_variable ]
111 !32 = metadata !{metadata !"0x26\00\000\0064\0064\000\0064", metadata !48, metadata !2, metadata !33} ; [ DW_TAG_const_type ]
112 !33 = metadata !{metadata !"0xf\00\000\0064\0064\000\000", metadata !48, metadata !2, metadata !1} ; [ DW_TAG_pointer_type ]
113 !34 = metadata !{i32 11, i32 0, metadata !16, null}
114 !35 = metadata !{i32 11, i32 0, metadata !36, null}
115 !36 = metadata !{metadata !"0xb\0011\000\001", metadata !48, metadata !37} ; [ DW_TAG_lexical_block ]
116 !37 = metadata !{metadata !"0xb\0011\000\000", metadata !48, metadata !16} ; [ DW_TAG_lexical_block ]
117 !38 = metadata !{metadata !"0x100\00v\0024\000", metadata !39, metadata !2, metadata !1} ; [ DW_TAG_auto_variable ]
118 !39 = metadata !{metadata !"0xb\0023\000\004", metadata !48, metadata !40} ; [ DW_TAG_lexical_block ]
119 !40 = metadata !{metadata !"0xb\0023\000\003", metadata !48, metadata !20} ; [ DW_TAG_lexical_block ]
120 !41 = metadata !{i32 24, i32 0, metadata !39, null}
121 !42 = metadata !{i32 25, i32 0, metadata !39, null}
122 !43 = metadata !{i32 26, i32 0, metadata !39, null}
123 !44 = metadata !{metadata !"0x100\00k\0026\000", metadata !39, metadata !2, metadata !13} ; [ DW_TAG_auto_variable ]
124 !45 = metadata !{i32 27, i32 0, metadata !39, null}
125 !46 = metadata !{metadata !16, metadata !17, metadata !20}
126 !47 = metadata !{}
127 !48 = metadata !{metadata !"small.cc", metadata !"/Users/manav/R8248330"}
128 !49 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
79 !0 = !{!"0x2e\00SVal\00SVal\00\0011\000\000\000\006\000\000\000", !48, !1, !14, null, null, null, null, null} ; [ DW_TAG_subprogram ]
80 !1 = !{!"0x13\00SVal\001\00128\0064\000\000\000", !48, null, null, !4, null, null, null} ; [ DW_TAG_structure_type ] [SVal] [line 1, size 128, align 64, offset 0] [def] [from ]
81 !2 = !{!"0x29", !48} ; [ DW_TAG_file_type ]
82 !3 = !{!"0x11\004\004.2.1 (Based on Apple Inc. build 5658) (LLVM build)\000\00\000\00\001", !48, !47, !47, !46, !47, !47} ; [ DW_TAG_compile_unit ]
83 !4 = !{!5, !7, !0, !9}
84 !5 = !{!"0xd\00Data\007\0064\0064\000\000", !48, !1, !6} ; [ DW_TAG_member ]
85 !6 = !{!"0xf\00\000\0064\0064\000\000", !48, null, null} ; [ DW_TAG_pointer_type ]
86 !7 = !{!"0xd\00Kind\008\0032\0032\0064\000", !48, !1, !8} ; [ DW_TAG_member ]
87 !8 = !{!"0x24\00unsigned int\000\0032\0032\000\000\007", !48, null} ; [ DW_TAG_base_type ]
88 !9 = !{!"0x2e\00~SVal\00~SVal\00\0012\000\000\000\006\000\000\000", !48, !1, !10, null, null, null, null, null} ; [ DW_TAG_subprogram ]
89 !10 = !{!"0x15\00\000\000\000\000\000\000", !48, null, null, !11, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
90 !11 = !{null, !12, !13}
91 !12 = !{!"0xf\00\000\0064\0064\000\0064", !48, null, !1} ; [ DW_TAG_pointer_type ]
92 !13 = !{!"0x24\00int\000\0032\0032\000\000\005", !48, null} ; [ DW_TAG_base_type ]
93 !14 = !{!"0x15\00\000\000\000\000\000\000", !48, null, null, !15, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
94 !15 = !{null, !12}
95 !16 = !{!"0x2e\00SVal\00SVal\00_ZN4SValC1Ev\0011\000\001\000\006\000\000\000", !48, !1, !14, null, void (%struct.SVal*)* @_ZN4SValC1Ev, null, null, null} ; [ DW_TAG_subprogram ]
96 !17 = !{!"0x2e\00foo\00foo\00_Z3fooi4SVal\0016\000\001\000\006\000\000\000", !48, !2, !18, null, i32 (i32, %struct.SVal*)* @_Z3fooi4SVal, null, null, null} ; [ DW_TAG_subprogram ]
97 !18 = !{!"0x15\00\000\000\000\000\000\000", !48, null, null, !19, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
98 !19 = !{!13, !13, !1}
99 !20 = !{!"0x2e\00main\00main\00main\0023\000\001\000\006\000\000\000", !48, !2, !21, null, i32 ()* @main, null, null, null} ; [ DW_TAG_subprogram ]
100 !21 = !{!"0x15\00\000\000\000\000\000\000", !48, null, null, !22, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
101 !22 = !{!13}
102 !23 = !{!"0x101\00i\0016\000", !17, !2, !13} ; [ DW_TAG_arg_variable ]
103 !24 = !{i32 16, i32 0, !17, null}
104 !25 = !{!"0x101\00location\0016\000", !17, !2, !26} ; [ DW_TAG_arg_variable ]
105 !26 = !{!"0x10\00SVal\000\0064\0064\000\000", !48, !2, !1} ; [ DW_TAG_reference_type ]
106 !27 = !{i32 17, i32 0, !28, null}
107 !28 = !{!"0xb\0016\000\002", !2, !17} ; [ DW_TAG_lexical_block ]
108 !29 = !{i32 18, i32 0, !28, null}
109 !30 = !{i32 20, i32 0, !28, null}
110 !31 = !{!"0x101\00this\0011\000", !16, !2, !32} ; [ DW_TAG_arg_variable ]
111 !32 = !{!"0x26\00\000\0064\0064\000\0064", !48, !2, !33} ; [ DW_TAG_const_type ]
112 !33 = !{!"0xf\00\000\0064\0064\000\000", !48, !2, !1} ; [ DW_TAG_pointer_type ]
113 !34 = !{i32 11, i32 0, !16, null}
114 !35 = !{i32 11, i32 0, !36, null}
115 !36 = !{!"0xb\0011\000\001", !48, !37} ; [ DW_TAG_lexical_block ]
116 !37 = !{!"0xb\0011\000\000", !48, !16} ; [ DW_TAG_lexical_block ]
117 !38 = !{!"0x100\00v\0024\000", !39, !2, !1} ; [ DW_TAG_auto_variable ]
118 !39 = !{!"0xb\0023\000\004", !48, !40} ; [ DW_TAG_lexical_block ]
119 !40 = !{!"0xb\0023\000\003", !48, !20} ; [ DW_TAG_lexical_block ]
120 !41 = !{i32 24, i32 0, !39, null}
121 !42 = !{i32 25, i32 0, !39, null}
122 !43 = !{i32 26, i32 0, !39, null}
123 !44 = !{!"0x100\00k\0026\000", !39, !2, !13} ; [ DW_TAG_auto_variable ]
124 !45 = !{i32 27, i32 0, !39, null}
125 !46 = !{!16, !17, !20}
126 !47 = !{}
127 !48 = !{!"small.cc", !"/Users/manav/R8248330"}
128 !49 = !{i32 1, !"Debug Info Version", i32 2}
2929
3030 define zeroext i8 @get1(i8 zeroext %a) nounwind optsize {
3131 entry:
32 tail call void @llvm.dbg.value(metadata !{i8 %a}, i64 0, metadata !10, metadata !{metadata !"0x102"}), !dbg !30
32 tail call void @llvm.dbg.value(metadata i8 %a, i64 0, metadata !10, metadata !{!"0x102"}), !dbg !30
3333 %0 = load i8* @x1, align 4, !dbg !30
34 tail call void @llvm.dbg.value(metadata !{i8 %0}, i64 0, metadata !11, metadata !{metadata !"0x102"}), !dbg !30
34 tail call void @llvm.dbg.value(metadata i8 %0, i64 0, metadata !11, metadata !{!"0x102"}), !dbg !30
3535 store i8 %a, i8* @x1, align 4, !dbg !30
3636 ret i8 %0, !dbg !31
3737 }
4040
4141 define zeroext i8 @get2(i8 zeroext %a) nounwind optsize {
4242 entry:
43 tail call void @llvm.dbg.value(metadata !{i8 %a}, i64 0, metadata !18, metadata !{metadata !"0x102"}), !dbg !32
43 tail call void @llvm.dbg.value(metadata i8 %a, i64 0, metadata !18, metadata !{!"0x102"}), !dbg !32
4444 %0 = load i8* @x2, align 4, !dbg !32
45 tail call void @llvm.dbg.value(metadata !{i8 %0}, i64 0, metadata !19, metadata !{metadata !"0x102"}), !dbg !32
45 tail call void @llvm.dbg.value(metadata i8 %0, i64 0, metadata !19, metadata !{!"0x102"}), !dbg !32
4646 store i8 %a, i8* @x2, align 4, !dbg !32
4747 ret i8 %0, !dbg !33
4848 }
4949
5050 define zeroext i8 @get3(i8 zeroext %a) nounwind optsize {
5151 entry:
52 tail call void @llvm.dbg.value(metadata !{i8 %a}, i64 0, metadata !21, metadata !{metadata !"0x102"}), !dbg !34
52 tail call void @llvm.dbg.value(metadata i8 %a, i64 0, metadata !21, metadata !{!"0x102"}), !dbg !34
5353 %0 = load i8* @x3, align 4, !dbg !34
54 tail call void @llvm.dbg.value(metadata !{i8 %0}, i64 0, metadata !22, metadata !{metadata !"0x102"}), !dbg !34
54 tail call void @llvm.dbg.value(metadata i8 %0, i64 0, metadata !22, metadata !{!"0x102"}), !dbg !34
5555 store i8 %a, i8* @x3, align 4, !dbg !34
5656 ret i8 %0, !dbg !35
5757 }
5858
5959 define zeroext i8 @get4(i8 zeroext %a) nounwind optsize {
6060 entry:
61 tail call void @llvm.dbg.value(metadata !{i8 %a}, i64 0, metadata !24, metadata !{metadata !"0x102"}), !dbg !36
61 tail call void @llvm.dbg.value(metadata i8 %a, i64 0, metadata !24, metadata !{!"0x102"}), !dbg !36
6262 %0 = load i8* @x4, align 4, !dbg !36
63 tail call void @llvm.dbg.value(metadata !{i8 %0}, i64 0, metadata !25, metadata !{metadata !"0x102"}), !dbg !36
63 tail call void @llvm.dbg.value(metadata i8 %0, i64 0, metadata !25, metadata !{!"0x102"}), !dbg !36
6464 store i8 %a, i8* @x4, align 4, !dbg !36
6565 ret i8 %0, !dbg !37
6666 }
6767
6868 define zeroext i8 @get5(i8 zeroext %a) nounwind optsize {
6969 entry:
70 tail call void @llvm.dbg.value(metadata !{i8 %a}, i64 0, metadata !27, metadata !{metadata !"0x102"}), !dbg !38
70 tail call void @llvm.dbg.value(metadata i8 %a, i64 0, metadata !27, metadata !{!"0x102"}), !dbg !38
7171 %0 = load i8* @x5, align 4, !dbg !38
72 tail call void @llvm.dbg.value(metadata !{i8 %0}, i64 0, metadata !28, metadata !{metadata !"0x102"}), !dbg !38
72 tail call void @llvm.dbg.value(metadata i8 %0, i64 0, metadata !28, metadata !{!"0x102"}), !dbg !38
7373 store i8 %a, i8* @x5, align 4, !dbg !38
7474 ret i8 %0, !dbg !39
7575 }
7777 !llvm.dbg.cu = !{!2}
7878 !llvm.module.flags = !{!49}
7979
80 !0 = metadata !{metadata !"0x2e\00get1\00get1\00get1\004\000\001\000\006\00256\001\004", metadata !47, metadata !1, metadata !3, null, i8 (i8)* @get1, null, null, metadata !42} ; [ DW_TAG_subprogram ]
81 !1 = metadata !{metadata !"0x29", metadata !47} ; [ DW_TAG_file_type ]
82 !2 = metadata !{metadata !"0x11\001\004.2.1 (Based on Apple Inc. build 5658) (LLVM build 2369.8)\001\00\000\00\000", metadata !47, metadata !48, metadata !48, metadata !40, metadata !41, metadata !48} ; [ DW_TAG_compile_unit ]
83 !3 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !47, metadata !1, null, metadata !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
84 !4 = metadata !{metadata !5, metadata !5}
85 !5 = metadata !{metadata !"0x24\00_Bool\000\008\008\000\000\002", metadata !47, metadata !1} ; [ DW_TAG_base_type ]
86 !6 = metadata !{metadata !"0x2e\00get2\00get2\00get2\007\000\001\000\006\00256\001\007", metadata !47, metadata !1, metadata !3, null, i8 (i8)* @get2, null, null, metadata !43} ; [ DW_TAG_subprogram ]
87 !7 = metadata !{metadata !"0x2e\00get3\00get3\00get3\0010\000\001\000\006\00256\001\0010", metadata !47, metadata !1, metadata !3, null, i8 (i8)* @get3, null, null, metadata !44} ; [ DW_TAG_subprogram ]
88 !8 = metadata !{metadata !"0x2e\00get4\00get4\00get4\0013\000\001\000\006\00256\001\0013", metadata !47, metadata !1, metadata !3, null, i8 (i8)* @get4, null, null, metadata !45} ; [ DW_TAG_subprogram ]
89 !9 = metadata !{metadata !"0x2e\00get5\00get5\00get5\0016\000\001\000\006\00256\001\0016", metadata !47, metadata !1, metadata !3, null, i8 (i8)* @get5, null, null, metadata !46} ; [ DW_TAG_subprogram ]
90 !10 = metadata !{metadata !"0x101\00a\004\000", metadata !0, metadata !1, metadata !5} ; [ DW_TAG_arg_variable ]
91 !11 = metadata !{metadata !"0x100\00b\004\000", metadata !12, metadata !1, metadata !5} ; [ DW_TAG_auto_variable ]
92 !12 = metadata !{metadata !"0xb\004\000\000", metadata !47, metadata !0} ; [ DW_TAG_lexical_block ]
93 !13 = metadata !{metadata !"0x34\00x1\00x1\00\003\001\001", metadata !1, metadata !1, metadata !5, i8* @x1, null} ; [ DW_TAG_variable ]
94 !14 = metadata !{metadata !"0x34\00x2\00x2\00\006\001\001", metadata !1, metadata !1, metadata !5, i8* @x2, null} ; [ DW_TAG_variable ]
95 !15 = metadata !{metadata !"0x34\00x3\00x3\00\009\001\001", metadata !1, metadata !1, metadata !5, i8* @x3, null} ; [ DW_TAG_variable ]
96 !16 = metadata !{metadata !"0x34\00x4\00x4\00\0012\001\001", metadata !1, metadata !1, metadata !5, i8* @x4, null} ; [ DW_TAG_variable ]
97 !17 = metadata !{metadata !"0x34\00x5\00x5\00\0015\000\001", metadata !1, metadata !1, metadata !5, i8* @x5, null} ; [ DW_TAG_variable ]
98 !18 = metadata !{metadata !"0x101\00a\007\000", metadata !6, metadata !1, metadata !5} ; [ DW_TAG_arg_variable ]
99 !19 = metadata !{metadata !"0x100\00b\007\000", metadata !20, metadata !1, metadata !5} ; [ DW_TAG_auto_variable ]
100 !20 = metadata !{metadata !"0xb\007\000\001", metadata !47, metadata !6} ; [ DW_TAG_lexical_block ]
101 !21 = metadata !{metadata !"0x101\00a\0010\000", metadata !7, metadata !1, metadata !5} ; [ DW_TAG_arg_variable ]
102 !22 = metadata !{metadata !"0x100\00b\0010\000", metadata !23, metadata !1, metadata !5} ; [ DW_TAG_auto_variable ]
103 !23 = metadata !{metadata !"0xb\0010\000\002", metadata !47, metadata !7} ; [ DW_TAG_lexical_block ]
104 !24 = metadata !{metadata !"0x101\00a\0013\000", metadata !8, metadata !1, metadata !5} ; [ DW_TAG_arg_variable ]
105 !25 = metadata !{metadata !"0x100\00b\0013\000", metadata !26, metadata !1, metadata !5} ; [ DW_TAG_auto_variable ]
106 !26 = metadata !{metadata !"0xb\0013\000\003", metadata !47, metadata !8} ; [ DW_TAG_lexical_block ]
107 !27 = metadata !{metadata !"0x101\00a\0016\000", metadata !9, metadata !1, metadata !5} ; [ DW_TAG_arg_variable ]
108 !28 = metadata !{metadata !"0x100\00b\0016\000", metadata !29, metadata !1, metadata !5} ; [ DW_TAG_auto_variable ]
109 !29 = metadata !{metadata !"0xb\0016\000\004", metadata !47, metadata !9} ; [ DW_TAG_lexical_block ]
110 !30 = metadata !{i32 4, i32 0, metadata !0, null}
111 !31 = metadata !{i32 4, i32 0, metadata !12, null}
112 !32 = metadata !{i32 7, i32 0, metadata !6, null}
113 !33 = metadata !{i32 7, i32 0, metadata !20, null}
114 !34 = metadata !{i32 10, i32 0, metadata !7, null}
115 !35 = metadata !{i32 10, i32 0, metadata !23, null}
116 !36 = metadata !{i32 13, i32 0, metadata !8, null}
117 !37 = metadata !{i32 13, i32 0, metadata !26, null}
118 !38 = metadata !{i32 16, i32 0, metadata !9, null}
119 !39 = metadata !{i32 16, i32 0, metadata !29, null}
120 !40 = metadata !{metadata !0, metadata !6, metadata !7, metadata !8, metadata !9}
121 !41 = metadata !{metadata !13, metadata !14, metadata !15, metadata !16, metadata !17}
122 !42 = metadata !{metadata !10, metadata !11}
123 !43 = metadata !{metadata !18, metadata !19}
124 !44 = metadata !{metadata !21, metadata !22}
125 !45 = metadata !{metadata !24, metadata !25}
126 !46 = metadata !{metadata !27, metadata !28}
127 !47 = metadata !{metadata !"foo.c", metadata !"/tmp/"}
128 !48 = metadata !{}
129 !49 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
80 !0 = !{!"0x2e\00get1\00get1\00get1\004\000\001\000\006\00256\001\004", !47, !1, !3, null, i8 (i8)* @get1, null, null, !42} ; [ DW_TAG_subprogram ]
81 !1 = !{!"0x29", !47} ; [ DW_TAG_file_type ]
82 !2 = !{!"0x11\001\004.2.1 (Based on Apple Inc. build 5658) (LLVM build 2369.8)\001\00\000\00\000", !47, !48, !48, !40, !41, !48} ; [ DW_TAG_compile_unit ]
83 !3 = !{!"0x15\00\000\000\000\000\000\000", !47, !1, null, !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
84 !4 = !{!5, !5}
85 !5 = !{!"0x24\00_Bool\000\008\008\000\000\002", !47, !1} ; [ DW_TAG_base_type ]
86 !6 = !{!"0x2e\00get2\00get2\00get2\007\000\001\000\006\00256\001\007", !47, !1, !3, null, i8 (i8)* @get2, null, null, !43} ; [ DW_TAG_subprogram ]
87 !7 = !{!"0x2e\00get3\00get3\00get3\0010\000\001\000\006\00256\001\0010", !47, !1, !3, null, i8 (i8)* @get3, null, null, !44} ; [ DW_TAG_subprogram ]
88 !8 = !{!"0x2e\00get4\00get4\00get4\0013\000\001\000\006\00256\001\0013", !47, !1, !3, null, i8 (i8)* @get4, null, null, !45} ; [ DW_TAG_subprogram ]
89 !9 = !{!"0x2e\00get5\00get5\00get5\0016\000\001\000\006\00256\001\0016", !47, !1, !3, null, i8 (i8)* @get5, null, null, !46} ; [ DW_TAG_subprogram ]
90 !10 = !{!"0x101\00a\004\000", !0, !1, !5} ; [ DW_TAG_arg_variable ]
91 !11 = !{!"0x100\00b\004\000", !12, !1, !5} ; [ DW_TAG_auto_variable ]
92 !12 = !{!"0xb\004\000\000", !47, !0} ; [ DW_TAG_lexical_block ]
93 !13 = !{!"0x34\00x1\00x1\00\003\001\001", !1, !1, !5, i8* @x1, null} ; [ DW_TAG_variable ]
94 !14 = !{!"0x34\00x2\00x2\00\006\001\001", !1, !1, !5, i8* @x2, null} ; [ DW_TAG_variable ]
95 !15 = !{!"0x34\00x3\00x3\00\009\001\001", !1, !1, !5, i8* @x3, null} ; [ DW_TAG_variable ]
96 !16 = !{!"0x34\00x4\00x4\00\0012\001\001", !1, !1, !5, i8* @x4, null} ; [ DW_TAG_variable ]
97 !17 = !{!"0x34\00x5\00x5\00\0015\000\001", !1, !1, !5, i8* @x5, null} ; [ DW_TAG_variable ]
98 !18 = !{!"0x101\00a\007\000", !6, !1, !5} ; [ DW_TAG_arg_variable ]
99 !19 = !{!"0x100\00b\007\000", !20, !1, !5} ; [ DW_TAG_auto_variable ]
100 !20 = !{!"0xb\007\000\001", !47, !6} ; [ DW_TAG_lexical_block ]
101 !21 = !{!"0x101\00a\0010\000", !7, !1, !5} ; [ DW_TAG_arg_variable ]
102 !22 = !{!"0x100\00b\0010\000", !23, !1, !5} ; [ DW_TAG_auto_variable ]
103 !23 = !{!"0xb\0010\000\002", !47, !7} ; [ DW_TAG_lexical_block ]
104 !24 = !{!"0x101\00a\0013\000", !8, !1, !5} ; [ DW_TAG_arg_variable ]
105 !25 = !{!"0x100\00b\0013\000", !26, !1, !5} ; [ DW_TAG_auto_variable ]
106 !26 = !{!"0xb\0013\000\003", !47, !8} ; [ DW_TAG_lexical_block ]
107 !27 = !{!"0x101\00a\0016\000", !9, !1, !5} ; [ DW_TAG_arg_variable ]
108 !28 = !{!"0x100\00b\0016\000", !29, !1, !5} ; [ DW_TAG_auto_variable ]
109 !29 = !{!"0xb\0016\000\004", !47, !9} ; [ DW_TAG_lexical_block ]
110 !30 = !{i32 4, i32 0, !0, null}
111 !31 = !{i32 4, i32 0, !12, null}
112 !32 = !{i32 7, i32 0, !6, null}
113 !33 = !{i32 7, i32 0, !20, null}
114 !34 = !{i32 10, i32 0, !7, null}
115 !35 = !{i32 10, i32 0, !23, null}
116 !36 = !{i32 13, i32 0, !8, null}
117 !37 = !{i32 13, i32 0, !26, null}
118 !38 = !{i32 16, i32 0, !9, null}
119 !39 = !{i32 16, i32 0, !29, null}
120 !40 = !{!0, !6, !7, !8, !9}
121 !41 = !{!13, !14, !15, !16, !17}
122 !42 = !{!10, !11}
123 !43 = !{!18, !19}
124 !44 = !{!21, !22}
125 !45 = !{!24, !25}
126 !46 = !{!27, !28}
127 !47 = !{!"foo.c", !"/tmp/"}
128 !48 = !{}
129 !49 = !{i32 1, !"Debug Info Version", i32 2}
1111 ret void
1212 }
1313
14 !0 = metadata !{i32 109}
14 !0 = !{i32 109}
8080
8181 declare void @_ZSt9terminatev()
8282
83 !0 = metadata !{metadata !"any pointer", metadata !1}
84 !1 = metadata !{metadata !"omnipotent char", metadata !2}
85 !2 = metadata !{metadata !"Simple C/C++ TBAA", null}
86 !3 = metadata !{metadata !"bool", metadata !1}
87 !4 = metadata !{metadata !"int", metadata !1}
83 !0 = !{!"any pointer", !1}
84 !1 = !{!"omnipotent char", !2}
85 !2 = !{!"Simple C/C++ TBAA", null}
86 !3 = !{!"bool", !1}
87 !4 = !{!"int", !1}
2828 @x5 = global i32 0, align 4
2929
3030 define i32 @get1(i32 %a) nounwind optsize ssp {
31 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !10, metadata !{metadata !"0x102"}), !dbg !30
31 tail call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata !10, metadata !{!"0x102"}), !dbg !30
3232 %1 = load i32* @x1, align 4, !dbg !31
33 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !11, metadata !{metadata !"0x102"}), !dbg !31
33 tail call void @llvm.dbg.value(metadata i32 %1, i64 0, metadata !11, metadata !{!"0x102"}), !dbg !31
3434 store i32 %a, i32* @x1, align 4, !dbg !31
3535 ret i32 %1, !dbg !31
3636 }
3737
3838 define i32 @get2(i32 %a) nounwind optsize ssp {
39 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !13, metadata !{metadata !"0x102"}), !dbg !32
39 tail call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata !13, metadata !{!"0x102"}), !dbg !32
4040 %1 = load i32* @x2, align 4, !dbg !33
41 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !14, metadata !{metadata !"0x102"}), !dbg !33
41 tail call void @llvm.dbg.value(metadata i32 %1, i64 0, metadata !14, metadata !{!"0x102"}), !dbg !33
4242 store i32 %a, i32* @x2, align 4, !dbg !33
4343 ret i32 %1, !dbg !33
4444 }
4545
4646 define i32 @get3(i32 %a) nounwind optsize ssp {
47 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !16, metadata !{metadata !"0x102"}), !dbg !34
47 tail call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata !16, metadata !{!"0x102"}), !dbg !34
4848 %1 = load i32* @x3, align 4, !dbg !35
49 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !17, metadata !{metadata !"0x102"}), !dbg !35
49 tail call void @llvm.dbg.value(metadata i32 %1, i64 0, metadata !17, metadata !{!"0x102"}), !dbg !35
5050 store i32 %a, i32* @x3, align 4, !dbg !35
5151 ret i32 %1, !dbg !35
5252 }
5353
5454 define i32 @get4(i32 %a) nounwind optsize ssp {
55 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !19, metadata !{metadata !"0x102"}), !dbg !36
55 tail call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata !19, metadata !{!"0x102"}), !dbg !36
5656 %1 = load i32* @x4, align 4, !dbg !37
57 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !20, metadata !{metadata !"0x102"}), !dbg !37
57 tail call void @llvm.dbg.value(metadata i32 %1, i64 0, metadata !20, metadata !{!"0x102"}), !dbg !37
5858 store i32 %a, i32* @x4, align 4, !dbg !37
5959 ret i32 %1, !dbg !37
6060 }
6161
6262 define i32 @get5(i32 %a) nounwind optsize ssp {
63 tail call void @llvm.dbg.value(metadata !{i32 %a}, i64 0, metadata !27, metadata !{metadata !"0x102"}), !dbg !38
63 tail call void @llvm.dbg.value(metadata i32 %a, i64 0, metadata !27, metadata !{!"0x102"}), !dbg !38
6464 %1 = load i32* @x5, align 4, !dbg !39
65 tail call void @llvm.dbg.value(metadata !{i32 %1}, i64 0, metadata !28, metadata !{metadata !"0x102"}), !dbg !39
65 tail call void @llvm.dbg.value(metadata i32 %1, i64 0, metadata !28, metadata !{!"0x102"}), !dbg !39
6666 store i32 %a, i32* @x5, align 4, !dbg !39
6767 ret i32 %1, !dbg !39
6868 }
7272 !llvm.dbg.cu = !{!0}
7373 !llvm.module.flags = !{!49}
7474
75 !0 = metadata !{metadata !"0x11\0012\00clang\001\00\000\00\001", metadata !47, metadata !48, metadata !48, metadata !40, metadata !41, metadata !48} ; [ DW_TAG_compile_unit ]
76 !1 = metadata !{metadata !"0x2e\00get1\00get1\00\005\000\001\000\006\00256\001\005", metadata !47, metadata !2, metadata !3, null, i32 (i32)* @get1, null, null, metadata !42} ; [ DW_TAG_subprogram ] [line 5] [def] [get1]
77 !2 = metadata !{metadata !"0x29", metadata !47} ; [ DW_TAG_file_type ]
78 !3 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", metadata !47, metadata !2, null, metadata !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
79 !4 = metadata !{metadata !5}
80 !5 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, metadata !0} ; [ DW_TAG_base_type ]
81 !6 = metadata !{metadata !"0x2e\00get2\00get2\00\008\000\001\000\006\00256\001\008", metadata !47, metadata !2, metadata !3, null, i32 (i32)* @get2, null, null, metadata !43} ; [ DW_TAG_subprogram ] [line 8] [def] [get2]
82 !7 = metadata !{metadata !"0x2e\00get3\00get3\00\0011\000\001\000\006\00256\001\0011", metadata !47, metadata !2, metadata !3, null, i32 (i32)* @get3, null, null, metadata !44} ; [ DW_TAG_subprogram ] [line 11] [def] [get3]
83 !8 = metadata !{metadata !"0x2e\00get4\00get4\00\0014\000\001\000\006\00256\001\0014", metadata !47, metadata !2, metadata !3, null, i32 (i32)* @get4, null, null, metadata !45} ; [ DW_TAG_subprogram ] [line 14] [def] [get4]
84 !9 = metadata !{metadata !"0x2e\00get5\00get5\00\0017\000\001\000\006\00256\001\0017", metadata !47, metadata !2, metadata !3, null, i32 (i32)* @get5, null, null, metadata !46} ; [ DW_TAG_subprogram ] [line 17] [def] [get5]
85 !10 = metadata !{metadata !"0x101\00a\0016777221\000", metadata !1, metadata !2, metadata !5} ; [ DW_TAG_arg_variable ]
86 !11 = metadata !{metadata !"0x100\00b\005\000", metadata !12, metadata !2, metadata !5} ; [ DW_TAG_auto_variable ]
87 !12 = metadata !{metadata !"0xb\005\0019\000", metadata !47, metadata !1} ; [ DW_TAG_lexical_block ]
88 !13 = metadata !{metadata !"0x101\00a\0016777224\000", metadata !6, metadata !2, metadata !5} ; [ DW_TAG_arg_variable ]
89 !14 = metadata !{metadata !"0x100\00b\008\000", metadata !15, metadata !2, metadata !5} ; [ DW_TAG_auto_variable ]
90 !15 = metadata !{metadata !"0xb\008\0017\001", metadata !47, metadata !6} ; [ DW_TAG_lexical_block ]
91 !16 = metadata !{metadata !"0x101\00a\0016777227\000", metadata !7, metadata !2, metadata !5} ; [ DW_TAG_arg_variable ]
92 !17 = metadata !{metadata !"0x100\00b\0011\000", metadata !18, metadata !2, metadata !5} ; [ DW_TAG_auto_variable ]
93 !18 = metadata !{metadata !"0xb\0011\0019\002", metadata !47, metadata !7} ; [ DW_TAG_lexical_block ]
94 !19 = metadata !{metadata !"0x101\00a\0016777230\000", metadata !8, metadata !2, metadata !5} ; [ DW_TAG_arg_variable ]
95 !20 = metadata !{metadata !"0x100\00b\0014\000", metadata !21, metadata !2, metadata !5} ; [ DW_TAG_auto_variable ]
96 !21 = metadata !{metadata !"0xb\0014\0019\003", metadata !47, metadata !8} ; [ DW_TAG_lexical_block ]
97 !25 = metadata !{metadata !"0x34\00x1\00x1\00\004\001\001", metadata !0, metadata !2, metadata !5, i32* @x1, null} ; [ DW_TAG_variable ]
98 !26 = metadata !{metadata !"0x34\00x2\00x2\00\007\001\001", metadata !0, metadata !2, metadata !5, i32* @x2, null} ; [ DW_TAG_variable ]
99 !27 = metadata !{metadata !"0x101\00a\0016777233\000", metadata !9, metadata !2, metadata !5} ; [ DW_TAG_arg_variable ]
100 !28 = metadata !{metadata !"0x100\00b\0017\000", metadata !29, metadata !2, metadata !5} ; [ DW_TAG_auto_variable ]
101 !29 = metadata !{metadata !"0xb\0017\0019\004", metadata !47, metadata !9} ; [ DW_TAG_lexical_block ]
102 !30 = metadata !{i32 5, i32 16, metadata !1, null}
103 !31 = metadata !{i32 5, i32 32, metadata !12, null}
104 !32 = metadata !{i32 8, i32 14, metadata !6, null}
105 !33 = metadata !{i32 8, i32 29, metadata !15, null}
106 !34 = metadata !{i32 11, i32 16, metadata !7, null}
107 !35 = metadata !{i32 11, i32 32, metadata !18, null}
108 !36 = metadata !{i32 14, i32 16, metadata !8, null}
109 !37 = metadata !{i32 14, i32 32, metadata !21, null}
110 !38 = metadata !{i32 17, i32 16, metadata !9, null}
111 !39 = metadata !{i32 17, i32 32, metadata !29, null}
112 !40 = metadata !{metadata !1, metadata !6, metadata !7, metadata !8, metadata !9}
113 !41 = metadata !{metadata !25, metadata !26}
114 !42 = metadata !{metadata !10, metadata !11}
115 !43 = metadata !{metadata !13, metadata !14}
116 !44 = metadata !{metadata !16, metadata !17}
117 !45 = metadata !{metadata !19, metadata !20}
118 !46 = metadata !{metadata !27, metadata !28}
119 !47 = metadata !{metadata !"ss3.c", metadata !"/private/tmp"}
120 !48 = metadata !{}
121 !49 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
75 !0 = !{!"0x11\0012\00clang\001\00\000\00\001", !47, !48, !48, !40, !41, !48} ; [ DW_TAG_compile_unit ]
76 !1 = !{!"0x2e\00get1\00get1\00\005\000\001\000\006\00256\001\005", !47, !2, !3, null, i32 (i32)* @get1, null, null, !42} ; [ DW_TAG_subprogram ] [line 5] [def] [get1]
77 !2 = !{!"0x29", !47} ; [ DW_TAG_file_type ]
78 !3 = !{!"0x15\00\000\000\000\000\000\000", !47, !2, null, !4, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
79 !4 = !{!5}
80 !5 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !0} ; [ DW_TAG_base_type ]
81 !6 = !{!"0x2e\00get2\00get2\00\008\000\001\000\006\00256\001\008", !47, !2, !3, null, i32 (i32)* @get2, null, null, !43} ; [ DW_TAG_subprogram ] [line 8] [def] [get2]
82 !7 = !{!"0x2e\00get3\00get3\00\0011\000\001\000\006\00256\001\0011", !47, !2, !3, null, i32 (i32)* @get3, null, null, !44} ; [ DW_TAG_subprogram ] [line 11] [def] [get3]
83 !8 = !{!"0x2e\00get4\00get4\00\0014\000\001\000\006\00256\001\0014", !47, !2, !3, null, i32 (i32)* @get4, null, null, !45} ; [ DW_TAG_subprogram ] [line 14] [def] [get4]
84 !9 = !{!"0x2e\00get5\00get5\00\0017\000\001\000\006\00256\001\0017", !47, !2, !3, null, i32 (i32)* @get5, null, null, !46} ; [ DW_TAG_subprogram ] [line 17] [def] [get5]
85 !10 = !{!"0x101\00a\0016777221\000", !1, !2, !5} ; [ DW_TAG_arg_variable ]
86 !11 = !{!"0x100\00b\005\000", !12, !2, !5} ; [ DW_TAG_auto_variable ]
87 !12 = !{!"0xb\005\0019\000", !47, !1} ; [ DW_TAG_lexical_block ]
88 !13 = !{!"0x101\00a\0016777224\000", !6, !2, !5} ; [ DW_TAG_arg_variable ]
89 !14 = !{!"0x100\00b\008\000", !15, !2, !5} ; [ DW_TAG_auto_variable ]
90 !15 = !{!"0xb\008\0017\001", !47, !6} ; [ DW_TAG_lexical_block ]
91 !16 = !{!"0x101\00a\0016777227\000", !7, !2, !5} ; [ DW_TAG_arg_variable ]
92 !17 = !{!"0x100\00b\0011\000", !18, !2, !5} ; [ DW_TAG_auto_variable ]
93 !18 = !{!"0xb\0011\0019\002", !47, !7} ; [ DW_TAG_lexical_block ]
94 !19 = !{!"0x101\00a\0016777230\000", !8, !2, !5} ; [ DW_TAG_arg_variable ]
95 !20 = !{!"0x100\00b\0014\000", !21, !2, !5} ; [ DW_TAG_auto_variable ]
96 !21 = !{!"0xb\0014\0019\003", !47, !8} ; [ DW_TAG_lexical_block ]
97 !25 = !{!"0x34\00x1\00x1\00\004\001\001", !0, !2, !5, i32* @x1, null} ; [ DW_TAG_variable ]
98 !26 = !{!"0x34\00x2\00x2\00\007\001\001", !0, !2, !5, i32* @x2, null} ; [ DW_TAG_variable ]
99 !27 = !{!"0x101\00a\0016777233\000", !9, !2, !5} ; [ DW_TAG_arg_variable ]
100 !28 = !{!"0x100\00b\0017\000", !29, !2, !5} ; [ DW_TAG_auto_variable ]
101 !29 = !{!"0xb\0017\0019\004", !47, !9} ; [ DW_TAG_lexical_block ]
102 !30 = !{i32 5, i32 16, !1, null}
103 !31 = !{i32 5, i32 32, !12, null}
104 !32 = !{i32 8, i32 14, !6, null}
105 !33 = !{i32 8, i32 29, !15, null}
106 !34 = !{i32 11, i32 16, !7, null}
107 !35 = !{i32 11, i32 32, !18, null}
108 !36 = !{i32 14, i32 16, !8, null}
109 !37 = !{i32 14, i32 32, !21, null}
110 !38 = !{i32 17, i32 16, !9, null}
111 !39 = !{i32 17, i32 32, !29, null}
112 !40 = !{!1, !6, !7, !8, !9}
113 !41 = !{!25, !26}
114 !42 = !{!10, !11}
115 !43 = !{!13, !14}
116 !44 = !{!16, !17}
117 !45 = !{!19, !20}
118 !46 = !{!27, !28}
119 !47 = !{!"ss3.c", !"/private/tmp"}
120 !48 = !{}
121 !49 = !{i32 1, !"Debug Info Version", i32 2}
6464
6565 !llvm.module.flags = !{!0, !1, !2, !3}
6666
67 !0 = metadata !{i32 1, metadata !"Objective-C Version", i32 2}
68 !1 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0}
69 !2 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
70 !3 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0}
67 !0 = !{i32 1, !"Objective-C Version", i32 2}
68 !1 = !{i32 1, !"Objective-C Image Info Version", i32 0}
69 !2 = !{i32 1, !"Objective-C Image Info Section", !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
70 !3 = !{i32 4, !"Objective-C Garbage Collection", i32 0}
168168
169169 declare arm_aapcs_vfpcc void @bar(%0*, float)
170170
171 !0 = metadata !{metadata !"branch_weights", i32 64, i32 4}
171 !0 = !{!"branch_weights", i32 64, i32 4}
77 ret void
88 }
99
10 !0 = metadata !{i32 318437}
10 !0 = !{i32 318437}
77 ret void
88 }
99
10 !0 = metadata !{i32 257}
10 !0 = !{i32 257}
2626
2727 for.body2: ; preds = %for.cond1
2828 store i32 %storemerge11, i32* @b, align 4, !dbg !26
29 tail call void @llvm.dbg.value(metadata !27, i64 0, metadata !11, metadata !{metadata !"0x102"}), !dbg !28
29 tail call void @llvm.dbg.value(metadata i32* null, i64 0, metadata !11, metadata !{!"0x102"}), !dbg !28
3030 %0 = load i64* @a, align 8, !dbg !29
3131 %xor = xor i64 %0, %e.1.ph, !dbg !29
3232 %conv3 = trunc i64 %xor to i32, !dbg !29
33 tail call void @llvm.dbg.value(metadata !{i32 %conv3}, i64 0, metadata !10, metadata !{metadata !"0x102"}), !dbg !29
33 tail call void @llvm.dbg.value(metadata i32 %conv3, i64 0, metadata !10, metadata !{!"0x102"}), !dbg !29
3434 %tobool4 = icmp eq i32 %conv3, 0, !dbg !29
3535 br i1 %tobool4, label %land.end, label %land.rhs, !dbg !29
3636
7878 !llvm.dbg.cu = !{!0}
7979 !llvm.module.flags = !{!33}
8080
81 !0 = metadata !{metadata !"0x11\0012\00clang version 3.4 (trunk 182024) (llvm/trunk 182023)\001\00\000\00\000", metadata !1, metadata !2, metadata !2, metadata !3, metadata !15, metadata !2} ; [ DW_TAG_compile_unit ] [/d/b/pr16110.c] [DW_LANG_C99]
82 !1 = metadata !{metadata !"pr16110.c", metadata !"/d/b"}
83 !2 = metadata !{}
84 !3 = metadata !{metadata !4}
85 !4 = metadata !{metadata !"0x2e\00pr16110\00pr16110\00\007\000\001\000\006\000\001\007", metadata !1, metadata !5, metadata !6, null, i32 ()* @pr16110, null, null, metadata !9} ; [ DW_TAG_subprogram ] [line 7] [def] [pr16110]
86 !5 = metadata !{metadata !"0x29", metadata !1} ; [ DW_TAG_file_type ] [/d/b/pr16110.c]
87 !6 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", i32 0, null, null, metadata !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
88 !7 = metadata !{metadata !8}
89 !8 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
90 !9 = metadata !{metadata !10, metadata !11}
91 !10 = metadata !{metadata !"0x100\00e\008\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_auto_variable ] [e] [line 8]
92 !11 = metadata !{metadata !"0x100\00f\0013\000", metadata !12, metadata !5, metadata !14} ; [ DW_TAG_auto_variable ] [f] [line 13]
93 !12 = metadata !{metadata !"0xb\0012\000\002", metadata !1, metadata !13} ; [ DW_TAG_lexical_block ] [/d/b/pr16110.c]
94 !13 = metadata !{metadata !"0xb\0012\000\001", metadata !1, metadata !4} ; [ DW_TAG_lexical_block ] [/d/b/pr16110.c]
95 !14 = metadata !{metadata !"0xf\00\000\0032\0032\000\000", null, null, metadata !8} ; [ DW_TAG_pointer_type ] [line 0, size 32, align 32, offset 0] [from int]
96 !15 = metadata !{metadata !16, metadata !18, metadata !19, metadata !20}
97 !16 = metadata !{metadata !"0x34\00a\00a\00\001\000\001", null, metadata !5, metadata !17, i64* @a, null} ; [ DW_TAG_variable ] [a] [line 1] [def]
98 !17 = metadata !{metadata !"0x24\00long long int\000\0064\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [long long int] [line 0, size 64, align 32, offset 0, enc DW_ATE_signed]
99 !18 = metadata !{metadata !"0x34\00b\00b\00\002\000\001", null, metadata !5, metadata !8, i32* @b, null} ; [ DW_TAG_variable ] [b] [line 2] [def]
100 !19 = metadata !{metadata !"0x34\00c\00c\00\003\000\001", null, metadata !5, metadata !8, i32* @c, null} ; [ DW_TAG_variable ] [c] [line 3] [def]
101 !20 = metadata !{metadata !"0x34\00d\00d\00\004\000\001", null, metadata !5, metadata !8, i32* @d, null} ; [ DW_TAG_variable ] [d] [line 4] [def]
102 !21 = metadata !{i32 10, i32 0, metadata !22, null}
103 !22 = metadata !{metadata !"0xb\0010\000\000", metadata !1, metadata !4} ; [ DW_TAG_lexical_block ] [/d/b/pr16110.c]
104 !26 = metadata !{i32 12, i32 0, metadata !13, null}
105 !27 = metadata !{i32* null}
106 !28 = metadata !{i32 13, i32 0, metadata !12, null}
107 !29 = metadata !{i32 14, i32 0, metadata !12, null}
108 !31 = metadata !{i32 16, i32 0, metadata !4, null}
109 !32 = metadata !{i32 18, i32 0, metadata !4, null}
110 !33 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
81 !0 = !{!"0x11\0012\00clang version 3.4 (trunk 182024) (llvm/trunk 182023)\001\00\000\00\000", !1, !2, !2, !3, !15, !2} ; [ DW_TAG_compile_unit ] [/d/b/pr16110.c] [DW_LANG_C99]
82 !1 = !{!"pr16110.c", !"/d/b"}
83 !2 = !{}
84 !3 = !{!4}
85 !4 = !{!"0x2e\00pr16110\00pr16110\00\007\000\001\000\006\000\001\007", !1, !5, !6, null, i32 ()* @pr16110, null, null, !9} ; [ DW_TAG_subprogram ] [line 7] [def] [pr16110]
86 !5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/d/b/pr16110.c]
87 !6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
88 !7 = !{!8}
89 !8 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
90 !9 = !{!10, !11}
91 !10 = !{!"0x100\00e\008\000", !4, !5, !8} ; [ DW_TAG_auto_variable ] [e] [line 8]
92 !11 = !{!"0x100\00f\0013\000", !12, !5, !14} ; [ DW_TAG_auto_variable ] [f] [line 13]
93 !12 = !{!"0xb\0012\000\002", !1, !13} ; [ DW_TAG_lexical_block ] [/d/b/pr16110.c]
94 !13 = !{!"0xb\0012\000\001", !1, !4} ; [ DW_TAG_lexical_block ] [/d/b/pr16110.c]
95 !14 = !{!"0xf\00\000\0032\0032\000\000", null, null, !8} ; [ DW_TAG_pointer_type ] [line 0, size 32, align 32, offset 0] [from int]
96 !15 = !{!16, !18, !19, !20}
97 !16 = !{!"0x34\00a\00a\00\001\000\001", null, !5, !17, i64* @a, null} ; [ DW_TAG_variable ] [a] [line 1] [def]
98 !17 = !{!"0x24\00long long int\000\0064\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [long long int] [line 0, size 64, align 32, offset 0, enc DW_ATE_signed]
99 !18 = !{!"0x34\00b\00b\00\002\000\001", null, !5, !8, i32* @b, null} ; [ DW_TAG_variable ] [b] [line 2] [def]
100 !19 = !{!"0x34\00c\00c\00\003\000\001", null, !5, !8, i32* @c, null} ; [ DW_TAG_variable ] [c] [line 3] [def]
101 !20 = !{!"0x34\00d\00d\00\004\000\001", null, !5, !8, i32* @d, null} ; [ DW_TAG_variable ] [d] [line 4] [def]
102 !21 = !{i32 10, i32 0, !22, null}
103 !22 = !{!"0xb\0010\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [/d/b/pr16110.c]
104 !26 = !{i32 12, i32 0, !13, null}
105 !27 = !{i32* null}
106 !28 = !{i32 13, i32 0, !12, null}
107 !29 = !{i32 14, i32 0, !12, null}
108 !31 = !{i32 16, i32 0, !4, null}
109 !32 = !{i32 18, i32 0, !4, null}
110 !33 = !{i32 1, !"Debug Info Version", i32 2}
2424 !llvm.module.flags = !{!9, !10}
2525 !llvm.ident = !{!11}
2626
27 !0 = metadata !{metadata !"0x11\0012\00clang version 3.5 \000\00\000\00\000", metadata !1, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2} ; [ DW_TAG_compile_unit ] [/tmp/var.c] [DW_LANG_C99]
28 !1 = metadata !{metadata !"var.c", metadata !"/tmp"}
29 !2 = metadata !{}
30 !3 = metadata !{metadata !4}
31 !4 = metadata !{metadata !"0x2e\00sum\00sum\00\005\000\001\000\006\00256\000\005", metadata !1, metadata !5, metadata !6, null, i32 (i32, ...)* @sum, null, null, metadata !2} ; [ DW_TAG_subprogram ] [line 5] [def] [sum]
32 !5 = metadata !{metadata !"0x29", metadata !1} ; [ DW_TAG_file_type ] [/tmp/var.c]
33 !6 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", i32 0, null, null, metadata !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
34 !7 = metadata !{metadata !8, metadata !8}
35 !8 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
36 !9 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
37 !10 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
38 !11 = metadata !{metadata !"clang version 3.5 "}
39 !12 = metadata !{metadata !"0x101\00count\0016777221\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [count] [line 5]
40 !13 = metadata !{i32 5, i32 0, metadata !4, null}
41 !14 = metadata !{metadata !"0x100\00vl\006\000", metadata !4, metadata !5, metadata !15} ; [ DW_TAG_auto_variable ] [vl] [line 6]
42 !15 = metadata !{metadata !"0x16\00va_list\0030\000\000\000\000", metadata !16, null, metadata !17} ; [ DW_TAG_typedef ] [va_list] [line 30, size 0, align 0, offset 0] [from __builtin_va_list]
43 !16 = metadata !{metadata !"/linux-x86_64-high/gcc_4.7.2/dbg/llvm/bin/../lib/clang/3.5/include/stdarg.h", metadata !"/tmp"}
44 !17 = metadata !{metadata !"0x16\00__builtin_va_list\006\000\000\000\000", metadata !1, null, metadata !18} ; [ DW_TAG_typedef ] [__builtin_va_list] [line 6, size 0, align 0, offset 0] [from __va_list]
45 !18 = metadata !{metadata !"0x13\00__va_list\006\0032\0032\000\000\000", metadata !1, null, null, metadata !19, null, null, null} ; [ DW_TAG_structure_type ] [__va_list] [line 6, size 32, align 32, offset 0] [def] [from ]
46 !19 = metadata !{metadata !20}
47 !20 = metadata !{metadata !"0xd\00__ap\006\0032\0032\000\000", metadata !1, metadata !18, metadata !21} ; [ DW_TAG_member ] [__ap] [line 6, size 32, align 32, offset 0] [from ]
48 !21 = metadata !{metadata !"0xf\00\000\0032\0032\000\000", null, null, null} ; [ DW_TAG_pointer_type ] [line 0, size 32, align 32, offset 0] [from ]
49 !22 = metadata !{i32 6, i32 0, metadata !4, null}
50 !23 = metadata !{i32 7, i32 0, metadata !4, null}
51 !24 = metadata !{metadata !"0x100\00sum\008\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_auto_variable ] [sum] [line 8]
52 !25 = metadata !{i32 8, i32 0, metadata !4, null}
53 !26 = metadata !{metadata !"0x100\00i\009\000", metadata !27, metadata !5, metadata !8} ; [ DW_TAG_auto_variable ] [i] [line 9]
54 !27 = metadata !{metadata !"0xb\009\000\000", metadata !1, metadata !4} ; [ DW_TAG_lexical_block ] [/tmp/var.c]
55 !28 = metadata !{i32 9, i32 0, metadata !27, null}
56 !29 = metadata !{i32 10, i32 0, metadata !30, null}
57 !30 = metadata !{metadata !"0xb\009\000\001", metadata !1, metadata !27} ; [ DW_TAG_lexical_block ] [/tmp/var.c]
58 !31 = metadata !{i32 11, i32 0, metadata !30, null}
59 !32 = metadata !{i32 12, i32 0, metadata !4, null}
60 !33 = metadata !{i32 13, i32 0, metadata !4, null}
27 !0 = !{!"0x11\0012\00clang version 3.5 \000\00\000\00\000", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [/tmp/var.c] [DW_LANG_C99]
28 !1 = !{!"var.c", !"/tmp"}
29 !2 = !{}
30 !3 = !{!4}
31 !4 = !{!"0x2e\00sum\00sum\00\005\000\001\000\006\00256\000\005", !1, !5, !6, null, i32 (i32, ...)* @sum, null, null, !2} ; [ DW_TAG_subprogram ] [line 5] [def] [sum]
32 !5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/tmp/var.c]
33 !6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
34 !7 = !{!8, !8}
35 !8 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
36 !9 = !{i32 2, !"Dwarf Version", i32 4}
37 !10 = !{i32 1, !"Debug Info Version", i32 2}
38 !11 = !{!"clang version 3.5 "}
39 !12 = !{!"0x101\00count\0016777221\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [count] [line 5]
40 !13 = !{i32 5, i32 0, !4, null}
41 !14 = !{!"0x100\00vl\006\000", !4, !5, !15} ; [ DW_TAG_auto_variable ] [vl] [line 6]
42 !15 = !{!"0x16\00va_list\0030\000\000\000\000", !16, null, !17} ; [ DW_TAG_typedef ] [va_list] [line 30, size 0, align 0, offset 0] [from __builtin_va_list]
43 !16 = !{!"/linux-x86_64-high/gcc_4.7.2/dbg/llvm/bin/../lib/clang/3.5/include/stdarg.h", !"/tmp"}
44 !17 = !{!"0x16\00__builtin_va_list\006\000\000\000\000", !1, null, !18} ; [ DW_TAG_typedef ] [__builtin_va_list] [line 6, size 0, align 0, offset 0] [from __va_list]
45 !18 = !{!"0x13\00__va_list\006\0032\0032\000\000\000", !1, null, null, !19, null, null, null} ; [ DW_TAG_structure_type ] [__va_list] [line 6, size 32, align 32, offset 0] [def] [from ]
46 !19 = !{!20}
47 !20 = !{!"0xd\00__ap\006\0032\0032\000\000", !1, !18, !21} ; [ DW_TAG_member ] [__ap] [line 6, size 32, align 32, offset 0] [from ]
48 !21 = !{!"0xf\00\000\0032\0032\000\000", null, null, null} ; [ DW_TAG_pointer_type ] [line 0, size 32, align 32, offset 0] [from ]
49 !22 = !{i32 6, i32 0, !4, null}
50 !23 = !{i32 7, i32 0, !4, null}
51 !24 = !{!"0x100\00sum\008\000", !4, !5, !8} ; [ DW_TAG_auto_variable ] [sum] [line 8]
52 !25 = !{i32 8, i32 0, !4, null}
53 !26 = !{!"0x100\00i\009\000", !27, !5, !8} ; [ DW_TAG_auto_variable ] [i] [line 9]
54 !27 = !{!"0xb\009\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [/tmp/var.c]
55 !28 = !{i32 9, i32 0, !27, null}
56 !29 = !{i32 10, i32 0, !30, null}
57 !30 = !{!"0xb\009\000\001", !1, !27} ; [ DW_TAG_lexical_block ] [/tmp/var.c]
58 !31 = !{i32 11, i32 0, !30, null}
59 !32 = !{i32 12, i32 0, !4, null}
60 !33 = !{i32 13, i32 0, !4, null}
6161
6262 ; CHECK-FP-LABEL: sum
6363 ; CHECK-FP: .cfi_startproc
127127 !llvm.module.flags = !{!10, !11}
128128 !llvm.ident = !{!12}
129129
130 !0 = metadata !{metadata !"0x11\004\00clang version 3.5 \000\00\000\00\000", metadata !1, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2} ; [ DW_TAG_compile_unit ] [/tmp/exp.cpp] [DW_LANG_C_plus_plus]
131 !1 = metadata !{metadata !"exp.cpp", metadata !"/tmp"}
132 !2 = metadata !{}
133 !3 = metadata !{metadata !4}
134 !4 = metadata !{metadata !"0x2e\00test\00test\00_Z4testiiiiiddddd\004\000\001\000\006\00256\000\005", metadata !1, metadata !5, metadata !6, null, void (i32, i32, i32, i32, i32, double, double, double, double, double)* @_Z4testiiiiiddddd, null, null, metadata !2} ; [ DW_TAG_subprogram ] [line 4] [def] [scope 5] [test]
135 !5 = metadata !{metadata !"0x29", metadata !1} ; [ DW_TAG_file_type ] [/tmp/exp.cpp]
136 !6 = metadata !{metadata !"0x15\00\000\000\000\000\000\000", i32 0, null, null, metadata !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
137 !7 = metadata !{null, metadata !8, metadata !8, metadata !8, metadata !8, metadata !8, metadata !9, metadata !9, metadata !9, metadata !9, metadata !9}
138 !8 = metadata !{metadata !"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
139 !9 = metadata !{metadata !"0x24\00double\000\0064\0064\000\000\004", null, null} ; [ DW_TAG_base_type ] [double] [line 0, size 64, align 64, offset 0, enc DW_ATE_float]
140 !10 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
141 !11 = metadata !{i32 1, metadata !"Debug Info Version", i32 2}
142 !12 = metadata !{metadata !"clang version 3.5 "}
143 !13 = metadata !{metadata !"0x101\00a\0016777220\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [a] [line 4]
144 !14 = metadata !{i32 4, i32 0, metadata !4, null}
145 !15 = metadata !{metadata !"0x101\00b\0033554436\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [b] [line 4]
146 !16 = metadata !{metadata !"0x101\00c\0050331652\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [c] [line 4]
147 !17 = metadata !{metadata !"0x101\00d\0067108868\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [d] [line 4]
148 !18 = metadata !{metadata !"0x101\00e\0083886084\000", metadata !4, metadata !5, metadata !8} ; [ DW_TAG_arg_variable ] [e] [line 4]
149 !19 = metadata !{metadata !"0x101\00m\00100663301\000", metadata !4, metadata !5, metadata !9} ; [ DW_TAG_arg_variable ] [m] [line 5]
150 !20 = metadata !{i32 5, i32 0, metadata !4, null}
151 !21 = metadata !{metadata !"0x101\00n\00117440517\000", metadata !4, metadata !5, metadata !9} ; [ DW_TAG_arg_variable ] [n] [line 5]
152 !22 = metadata !{metadata !"0x101\00p\00134217733\000", metadata !4, metadata !5, metadata !9} ; [ DW_TAG_arg_variable ] [p] [line 5]
153 !23 = metadata !{metadata !"0x101\00q\00150994949\000", metadata !4, metadata !5, metadata !9} ; [ DW_TAG_arg_variable ] [q] [line 5]
154 !24 = metadata !{metadata !"0x101\00r\00167772165\000", metadata !4, metadata !5, metadata !9} ; [ DW_TAG_arg_variable ] [r] [line 5]
155 !25 = metadata !{i32 7, i32 0, metadata !26, null}
156 !26 = metadata !{metadata !"0xb\006\000\000", metadata !1, metadata !4} ; [ DW_TAG_lexical_block ] [/tmp/exp.cpp]
157 !27 = metadata !{i32 8, i32 0, metadata !26, null}
158 !28 = metadata !{i32 11, i32 0, metadata !26, null}
159 !29 = metadata !{i32 9, i32 0, metadata !30, null}
160 !30 = metadata !{metadata !"0xb\008\000\001", metadata !1, metadata !4} ; [ DW_TAG_lexical_block ] [/tmp/exp.cpp]
161 !31 = metadata !{i32 10, i32 0, metadata !30, null}
162 !32 = metadata !{i32 10, i32 0, metadata !4, null}
163 !33 = metadata !{i32 11, i32 0, metadata !4, null}
164 !34 = metadata !{i32 11, i32 0, metadata !30, null}
130 !0 = !{!"0x11\004\00clang version 3.5 \000\00\000\00\000", !1, !2, !2, !3, !2, !2} ; [ DW_TAG_compile_unit ] [/tmp/exp.cpp] [DW_LANG_C_plus_plus]
131 !1 = !{!"exp.cpp", !"/tmp"}
132 !2 = !{}
133 !3 = !{!4}
134 !4 = !{!"0x2e\00test\00test\00_Z4testiiiiiddddd\004\000\001\000\006\00256\000\005", !1, !5, !6, null, void (i32, i32, i32, i32, i32, double, double, double, double, double)* @_Z4testiiiiiddddd, null, null, !2} ; [ DW_TAG_subprogram ] [line 4] [def] [scope 5] [test]
135 !5 = !{!"0x29", !1} ; [ DW_TAG_file_type ] [/tmp/exp.cpp]
136 !6 = !{!"0x15\00\000\000\000\000\000\000", i32 0, null, null, !7, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
137 !7 = !{null, !8, !8, !8, !8, !8, !9, !9, !9, !9, !9}
138 !8 = !{!"0x24\00int\000\0032\0032\000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
139 !9 = !{!"0x24\00double\000\0064\0064\000\000\004", null, null} ; [ DW_TAG_base_type ] [double] [line 0, size 64, align 64, offset 0, enc DW_ATE_float]
140 !10 = !{i32 2, !"Dwarf Version", i32 4}
141 !11 = !{i32 1, !"Debug Info Version", i32 2}
142 !12 = !{!"clang version 3.5 "}
143 !13 = !{!"0x101\00a\0016777220\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [a] [line 4]
144 !14 = !{i32 4, i32 0, !4, null}
145 !15 = !{!"0x101\00b\0033554436\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [b] [line 4]
146 !16 = !{!"0x101\00c\0050331652\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [c] [line 4]
147 !17 = !{!"0x101\00d\0067108868\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [d] [line 4]
148 !18 = !{!"0x101\00e\0083886084\000", !4, !5, !8} ; [ DW_TAG_arg_variable ] [e] [line 4]
149 !19 = !{!"0x101\00m\00100663301\000", !4, !5, !9} ; [ DW_TAG_arg_variable ] [m] [line 5]
150 !20 = !{i32 5, i32 0, !4, null}
151 !21 = !{!"0x101\00n\00117440517\000", !4, !5, !9} ; [ DW_TAG_arg_variable ] [n] [line 5]
152 !22 = !{!"0x101\00p\00134217733\000", !4, !5, !9} ; [ DW_TAG_arg_variable ] [p] [line 5]
153 !23 = !{!"0x101\00q\00150994949\000", !4, !5, !9} ; [ DW_TAG_arg_variable ] [q] [line 5]
154 !24 = !{!"0x101\00r\00167772165\000", !4, !5, !9} ; [ DW_TAG_arg_variable ] [r] [line 5]
155 !25 = !{i32 7, i32 0, !26, null}
156 !26 = !{!"0xb\006\000\000", !1, !4} ; [ DW_TAG_lexical_block ] [/tmp/exp.cpp]
157 !27 = !{i32 8, i32 0, !26, null}
158 !28 = !{i32 11, i32 0, !26, null}
159 !29 = !{i32 9, i32 0, !30, null}
160 !30 = !{!"0xb\008\000\001", !1, !4} ; [ DW_TAG_lexical_block ] [/tmp/exp.cpp]
161 !31 = !{i32 10, i32 0, !30, null}
162 !32 = !{i32 10, i32 0, !4, null}
163 !33 = !{i32 11, i32 0, !4, null}
164 !34 = !{i32 11, i32 0, !30, null}
165165
166166 ; CHECK-FP-LABEL: _Z4testiiiiiddddd:
167167 ; CHECK-FP: .cfi_startproc
66 %struct.tag_s = type { i32, i32, i32 }
77
88 define void @foo(%struct.tag_s* nocapture %this, %struct.tag_s* %c, i64 %x, i64 %y, %struct.tag_s* nocapture %ptr1, %struct.tag_s* nocapture %ptr2) nounwind ssp {
9 tail call void @llvm.dbg.value(metadata !{%struct.tag_s* %this}, i64 0, metadata !5, metadata !{metadata !"0x102"}), !dbg !20
10 tail call void @llvm.dbg.value(metadata !{%struct.tag_s* %c}, i64 0, metadata !13, metadata !{metadata !"0x102"}), !dbg !21
11 tail call void @llvm.dbg.value(metadata !{i64 %x}, i64 0, metadata !