<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 03/06/2017 04:48 PM, Adrian Prantl
      via llvm-commits wrote:<br>
    </div>
    <blockquote
      cite="mid:AE0946C4-1FAF-4BC5-99C9-137BCF2B376F@apple.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <br class="">
      <div>
        <blockquote type="cite" class="">
          <div class="">On Mar 6, 2017, at 2:33 PM, David Blaikie <<a
              moz-do-not-send="true" href="mailto:dblaikie@gmail.com"
              class="">dblaikie@gmail.com</a>> wrote:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <div dir="ltr" class=""><br class="">
              <br class="">
              <div class="gmail_quote">
                <div dir="ltr" class="">On Thu, Mar 2, 2017 at 5:20 PM
                  Adrian Prantl via llvm-commits <<a
                    moz-do-not-send="true"
                    href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>>
                  wrote:<br class="">
                </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">Author:
                  adrian<br class="gmail_msg">
                  Date: Thu Mar  2 19:08:25 2017<br class="gmail_msg">
                  New Revision: 296847<br class="gmail_msg">
                  <br class="gmail_msg">
                  URL: <a moz-do-not-send="true"
                    href="http://llvm.org/viewvc/llvm-project?rev=296847&view=rev"
                    rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=296847&view=rev</a><br
                    class="gmail_msg">
                  Log:<br class="gmail_msg">
                  LiveDebugValues: Assume calls never clobber SP.<br
                    class="gmail_msg">
                  <br class="gmail_msg">
                  A call should never modify the stack pointer, but some
                  backends are<br class="gmail_msg">
                  not so sure about this and never list SP in the
                  regmask.</blockquote>
              </div>
            </div>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
    I don't quite understand this statement. For callee-cleanup calling
    conventions (e.g. pascal, stdcall, etc. on Windows), the callee
    (and, thus, from the perspective of the caller, the call
    instruction), does modify the stack pointer. What am I missing?<br>
    <br>
    Thanks again,<br>
    Hal<br>
    <br>
    <blockquote
      cite="mid:AE0946C4-1FAF-4BC5-99C9-137BCF2B376F@apple.com"
      type="cite">
      <div>
        <blockquote type="cite" class="">
          <div class="">
            <div dir="ltr" class="">
              <div class="gmail_quote">
                <div class=""><br class="">
                </div>
                <div class="">Should the backends be fixed instead?</div>
              </div>
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>Yes they should, but my understanding is that this is a
          larger undertaking that is not likely to happen anytime soon.</div>
        <div><br class="">
        </div>
        <div>-- adrian</div>
        <br class="">
        <blockquote type="cite" class="">
          <div class="">
            <div dir="ltr" class="">
              <div class="gmail_quote">
                <div class=""> </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex"> For
                  the<br class="gmail_msg">
                  purposes of LiveDebugValues we assume a call never
                  clobbers SP. We<br class="gmail_msg">
                  already have a similar workaround in
                  DbgValueHistoryCalculator (which<br class="gmail_msg">
                  we hopefully can retire soon).<br class="gmail_msg">
                  <br class="gmail_msg">
                  This fixes the availabilty of local ASANified
                  variables on AArch64.<br class="gmail_msg">
                  <br class="gmail_msg">
                  <a moz-do-not-send="true"
                    href="rdar://problem/27757381" class="">rdar://problem/27757381</a><br
                    class="gmail_msg">
                  <br class="gmail_msg">
                  Added:<br class="gmail_msg">
                     
                  llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll<br
                    class="gmail_msg">
                  Modified:<br class="gmail_msg">
                      llvm/trunk/lib/CodeGen/LiveDebugValues.cpp<br
                    class="gmail_msg">
                  <br class="gmail_msg">
                  Modified: llvm/trunk/lib/CodeGen/LiveDebugValues.cpp<br
                    class="gmail_msg">
                  URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveDebugValues.cpp?rev=296847&r1=296846&r2=296847&view=diff"
                    rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveDebugValues.cpp?rev=296847&r1=296846&r2=296847&view=diff</a><br
                    class="gmail_msg">
==============================================================================<br
                    class="gmail_msg">
                  --- llvm/trunk/lib/CodeGen/LiveDebugValues.cpp
                  (original)<br class="gmail_msg">
                  +++ llvm/trunk/lib/CodeGen/LiveDebugValues.cpp Thu
                  Mar  2 19:08:25 2017<br class="gmail_msg">
                  @@ -373,8 +373,12 @@ void
                  LiveDebugValues::transferRegisterDe<br
                    class="gmail_msg">
                     unsigned SP =
                  TLI->getStackPointerRegisterToSaveRestore();<br
                    class="gmail_msg">
                     SparseBitVector<> KillSet;<br
                    class="gmail_msg">
                     for (const MachineOperand &MO : MI.operands())
                  {<br class="gmail_msg">
                  +    // Determine whether the operand is a register
                  def.  Assume that call<br class="gmail_msg">
                  +    // instructions never clobber SP, because some
                  backends (e.g., AArch64)<br class="gmail_msg">
                  +    // never list SP in the regmask.<br
                    class="gmail_msg">
                       if (MO.isReg() && MO.isDef() &&
                  MO.getReg() &&<br class="gmail_msg">
                  -        TRI->isPhysicalRegister(MO.getReg())) {<br
                    class="gmail_msg">
                  +        TRI->isPhysicalRegister(MO.getReg())
                  &&<br class="gmail_msg">
                  +        !(MI.isCall() && MO.getReg() == SP))
                  {<br class="gmail_msg">
                         // Remove ranges of all aliased registers.<br
                    class="gmail_msg">
                         for (MCRegAliasIterator RAI(MO.getReg(), TRI,
                  true); RAI.isValid(); ++RAI)<br class="gmail_msg">
                           for (unsigned ID : OpenRanges.getVarLocs())<br
                    class="gmail_msg">
                  <br class="gmail_msg">
                  Added:
                  llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll<br
                    class="gmail_msg">
                  URL: <a moz-do-not-send="true"
href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll?rev=296847&view=auto"
                    rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll?rev=296847&view=auto</a><br
                    class="gmail_msg">
==============================================================================<br
                    class="gmail_msg">
                  ---
                  llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll
                  (added)<br class="gmail_msg">
                  +++
                  llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.ll
                  Thu Mar  2 19:08:25 2017<br class="gmail_msg">
                  @@ -0,0 +1,326 @@<br class="gmail_msg">
                  +; RUN: llc -O0 -filetype=obj -o - %s | llvm-dwarfdump
                  - | FileCheck %s<br class="gmail_msg">
                  +;<br class="gmail_msg">
                  +; Derived from (clang -O0 -g -fsanitize=address
                  -fobjc-arc)<br class="gmail_msg">
                  +;   @protocol NSObject<br class="gmail_msg">
                  +;   @end<br class="gmail_msg">
                  +;   @interface NSObject<NSObject>{}<br
                    class="gmail_msg">
                  +;   + (instancetype)alloc;<br class="gmail_msg">
                  +;   @end<br class="gmail_msg">
                  +;   struct CGSize {<br class="gmail_msg">
                  +;     double width;<br class="gmail_msg">
                  +;     double height;<br class="gmail_msg">
                  +;   };<br class="gmail_msg">
                  +;   typedef struct CGSize CGSize;<br
                    class="gmail_msg">
                  +;   @interface Object : NSObject<br class="gmail_msg">
                  +;   - (instancetype)initWithSize:(CGSize)size;<br
                    class="gmail_msg">
                  +;   - (id)aMessage;<br class="gmail_msg">
                  +;   @end<br class="gmail_msg">
                  +;   @implementation MyObject<br class="gmail_msg">
                  +;   + (id)doWithSize:(CGSize)imageSize
                  andObject:(id)object {<br class="gmail_msg">
                  +;     return [object aMessage];<br class="gmail_msg">
                  +;   }<br class="gmail_msg">
                  +;   @end<br class="gmail_msg">
                  +;<br class="gmail_msg">
                  +; CHECK: .debug_info contents:<br class="gmail_msg">
                  +; CHECK: DW_TAG_subprogram<br class="gmail_msg">
                  +; CHECK-NEXT:   DW_AT_low_pc [DW_FORM_addr]   
                   (0x0000000000000000)<br class="gmail_msg">
                  +; CHECK-NEXT:   DW_AT_high_pc [DW_FORM_addr]   
                  ([[FN_END:.*]])<br class="gmail_msg">
                  +; CHECK: "_cmd"<br class="gmail_msg">
                  +; CHECK: DW_TAG_formal_parameter<br class="gmail_msg">
                  +; CHECK-NEXT: DW_AT_location {{.*}} ([[OFS:.*]])<br
                    class="gmail_msg">
                  +; CHECK-NEXT: DW_AT_name {{.*}}"imageSize"<br
                    class="gmail_msg">
                  +;<br class="gmail_msg">
                  +; CHECK: .debug_loc contents:<br class="gmail_msg">
                  +; CHECK: [[OFS]]: Beginning address offset:
                  0x0000000000000000<br class="gmail_msg">
                  +; CHECK_NOT: 0x{{.*}}: Beginning<br class="gmail_msg">
                  +; CHECK:          Ending address offset: [[FN_END]]<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; ModuleID = 'm.m'<br class="gmail_msg">
                  +source_filename = "m.m"<br class="gmail_msg">
                  +target datalayout =
                  "e-m:o-i64:64-i128:128-n32:64-S128"<br
                    class="gmail_msg">
                  +target triple = "arm64-apple-ios"<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +%0 = type opaque<br class="gmail_msg">
                  +%struct._class_t = type { %struct._class_t*,
                  %struct._class_t*, %struct._objc_cache*, i8* (i8*,
                  i8*)**, %struct._class_ro_t* }<br class="gmail_msg">
                  +%struct._objc_cache = type opaque<br
                    class="gmail_msg">
                  +%struct._class_ro_t = type { i32, i32, i32, i8*, i8*,
                  %struct.__method_list_t*,
                  %struct._objc_protocol_list*, %struct._ivar_list_t*,
                  i8*, %struct._prop_list_t* }<br class="gmail_msg">
                  +%struct.__method_list_t = type { i32, i32, [0 x
                  %struct._objc_method] }<br class="gmail_msg">
                  +%struct._objc_method = type { i8*, i8*, i8* }<br
                    class="gmail_msg">
                  +%struct._objc_protocol_list = type { i64, [0 x
                  %struct._protocol_t*] }<br class="gmail_msg">
                  +%struct._protocol_t = type { i8*, i8*,
                  %struct._objc_protocol_list*,
                  %struct.__method_list_t*, %struct.__method_list_t*,
                  %struct.__method_list_t*, %struct.__method_list_t*,
                  %struct._prop_list_t*, i32, i32, i8**, i8*,
                  %struct._prop_list_t* }<br class="gmail_msg">
                  +%struct._ivar_list_t = type { i32, i32, [0 x
                  %struct._ivar_t] }<br class="gmail_msg">
                  +%struct._ivar_t = type { i32*, i8*, i8*, i32, i32 }<br
                    class="gmail_msg">
                  +%struct._prop_list_t = type { i32, i32, [0 x
                  %struct._prop_t] }<br class="gmail_msg">
                  +%struct._prop_t = type { i8*, i8* }<br
                    class="gmail_msg">
                  +%struct.CGSize = type { double, double }<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +@"OBJC_CLASS_$_Object" = external global
                  %struct._class_t<br class="gmail_msg">
                  +@"OBJC_CLASSLIST_REFERENCES_$_" = private global
                  %struct._class_t* @"OBJC_CLASS_$_Object", section
                  "__DATA, __objc_classrefs, regular, no_dead_strip",
                  align 8<br class="gmail_msg">
                  +@OBJC_METH_VAR_NAME_ = private unnamed_addr constant
                  [6 x i8] c"alloc\00", section
                  "__TEXT,__objc_methname,cstring_literals", align 1<br
                    class="gmail_msg">
                  +@OBJC_SELECTOR_REFERENCES_ = private
                  externally_initialized global i8* getelementptr
                  inbounds ([6 x i8], [6 x i8]* @OBJC_METH_VAR_NAME_,
                  i32 0, i32 0), section "__DATA, __objc_selrefs,
                  literal_pointers, no_dead_strip", align 8<br
                    class="gmail_msg">
                  +@OBJC_METH_VAR_NAME_.1 = private unnamed_addr
                  constant [14 x i8] c"initWithSize:\00", section
                  "__TEXT,__objc_methname,cstring_literals", align 1<br
                    class="gmail_msg">
                  +@OBJC_SELECTOR_REFERENCES_.2 = private
                  externally_initialized global i8* getelementptr
                  inbounds ([14 x i8], [14 x i8]*
                  @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), section
                  "__DATA, __objc_selrefs, literal_pointers,
                  no_dead_strip", align 8<br class="gmail_msg">
                  +@OBJC_METH_VAR_NAME_.3 = private unnamed_addr
                  constant [9 x i8] c"aMessage\00", section
                  "__TEXT,__objc_methname,cstring_literals", align 1<br
                    class="gmail_msg">
                  +@OBJC_SELECTOR_REFERENCES_.4 = private
                  externally_initialized global i8* getelementptr
                  inbounds ([9 x i8], [9 x i8]* @OBJC_METH_VAR_NAME_.3,
                  i32 0, i32 0), section "__DATA, __objc_selrefs,
                  literal_pointers, no_dead_strip", align 8<br
                    class="gmail_msg">
                  +@_objc_empty_cache = external global
                  %struct._objc_cache<br class="gmail_msg">
                  +@"OBJC_CLASS_$_MyObject" = global %struct._class_t {
                  %struct._class_t* @"OBJC_METACLASS_$_MyObject",
                  %struct._class_t* null, %struct._objc_cache*
                  @_objc_empty_cache, i8* (i8*, i8*)** null,
                  %struct._class_ro_t* @"\01l_OBJC_CLASS_RO_$_MyObject"
                  }, section "__DATA, __objc_data", align 8<br
                    class="gmail_msg">
                  +@"OBJC_METACLASS_$_MyObject" = global
                  %struct._class_t { %struct._class_t*
                  @"OBJC_METACLASS_$_MyObject", %struct._class_t*
                  @"OBJC_CLASS_$_MyObject", %struct._objc_cache*
                  @_objc_empty_cache, i8* (i8*, i8*)** null,
                  %struct._class_ro_t*
                  @"\01l_OBJC_METACLASS_RO_$_MyObject" }, section
                  "__DATA, __objc_data", align 8<br class="gmail_msg">
                  +@OBJC_CLASS_NAME_ = private unnamed_addr constant [9
                  x i8] c"MyObject\00", section
                  "__TEXT,__objc_classname,cstring_literals", align 1<br
                    class="gmail_msg">
                  +@OBJC_METH_VAR_NAME_.5 = private unnamed_addr
                  constant [12 x i8] c"doWithSize:\00", section
                  "__TEXT,__objc_methname,cstring_literals", align 1<br
                    class="gmail_msg">
                  +@OBJC_METH_VAR_TYPE_ = private unnamed_addr constant
                  [21 x i8] c"@32@0:8{CGSize=dd}16\00", section
                  "__TEXT,__objc_methtype,cstring_literals", align 1<br
                    class="gmail_msg">
                  +@"\01l_OBJC_$_CLASS_METHODS_MyObject" = private
                  global { i32, i32, [1 x %struct._objc_method] } { i32
                  24, i32 1, [1 x %struct._objc_method]
                  [%struct._objc_method { i8* getelementptr inbounds
                  ([12 x i8], [12 x i8]* @OBJC_METH_VAR_NAME_.5, i32 0,
                  i32 0), i8* getelementptr inbounds ([21 x i8], [21 x
                  i8]* @OBJC_METH_VAR_TYPE_, i32 0, i32 0), i8* bitcast
                  (i8* (i8*, i8*, [2 x double])* @"\01+[MyObject
                  doWithSize:]" to i8*) }] }, section "__DATA,
                  __objc_const", align 8<br class="gmail_msg">
                  +@"\01l_OBJC_METACLASS_RO_$_MyObject" = private global
                  %struct._class_ro_t { i32 131, i32 40, i32 40, i8*
                  null, i8* getelementptr inbounds ([9 x i8], [9 x i8]*
                  @OBJC_CLASS_NAME_, i32 0, i32 0),
                  %struct.__method_list_t* bitcast ({ i32, i32, [1 x
                  %struct._objc_method] }*
                  @"\01l_OBJC_$_CLASS_METHODS_MyObject" to
                  %struct.__method_list_t*),
                  %struct._objc_protocol_list* null,
                  %struct._ivar_list_t* null, i8* null,
                  %struct._prop_list_t* null }, section "__DATA,
                  __objc_const", align 8<br class="gmail_msg">
                  +@"\01l_OBJC_CLASS_RO_$_MyObject" = private global
                  %struct._class_ro_t { i32 130, i32 0, i32 0, i8* null,
                  i8* getelementptr inbounds ([9 x i8], [9 x i8]*
                  @OBJC_CLASS_NAME_, i32 0, i32 0),
                  %struct.__method_list_t* null,
                  %struct._objc_protocol_list* null,
                  %struct._ivar_list_t* null, i8* null,
                  %struct._prop_list_t* null }, section "__DATA,
                  __objc_const", align 8<br class="gmail_msg">
                  +@"OBJC_LABEL_CLASS_$" = private global [1 x i8*] [i8*
                  bitcast (%struct._class_t* @"OBJC_CLASS_$_MyObject" to
                  i8*)], section "__DATA, __objc_classlist, regular,
                  no_dead_strip", align 8<br class="gmail_msg">
                  +@llvm.compiler.used = appending global [12 x i8*]
                  [i8* bitcast (%struct._class_t**
                  @"OBJC_CLASSLIST_REFERENCES_$_" to i8*), i8*
                  getelementptr inbounds ([6 x i8], [6 x i8]*
                  @OBJC_METH_VAR_NAME_, i32 0, i32 0), i8* bitcast (i8**
                  @OBJC_SELECTOR_REFERENCES_ to i8*), i8* getelementptr
                  inbounds ([14 x i8], [14 x i8]*
                  @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), i8* bitcast
                  (i8** @OBJC_SELECTOR_REFERENCES_.2 to i8*), i8*
                  getelementptr inbounds ([9 x i8], [9 x i8]*
                  @OBJC_METH_VAR_NAME_.3, i32 0, i32 0), i8* bitcast
                  (i8** @OBJC_SELECTOR_REFERENCES_.4 to i8*), i8*
                  getelementptr inbounds ([9 x i8], [9 x i8]*
                  @OBJC_CLASS_NAME_, i32 0, i32 0), i8* getelementptr
                  inbounds ([12 x i8], [12 x i8]*
                  @OBJC_METH_VAR_NAME_.5, i32 0, i32 0), i8*
                  getelementptr inbounds ([21 x i8], [21 x i8]*
                  @OBJC_METH_VAR_TYPE_, i32 0, i32 0), i8* bitcast ({
                  i32, i32, [1 x %struct._objc_method] }*
                  @"\01l_OBJC_$_CLASS_METHODS_MyObject" to i8*), i8*
                  bitcast ([1 x i8*]* @"OBJC_LABEL_CLASS_$" to i8*)],
                  section "llvm.metadata"<br class="gmail_msg">
                  +@llvm.global_ctors = appending global [1 x { i32,
                  void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void
                  ()* @asan.module_ctor, i8* null }]<br
                    class="gmail_msg">
                  +@__asan_shadow_memory_dynamic_address = external
                  global i64<br class="gmail_msg">
                  +@__asan_gen_ = private unnamed_addr constant [34 x
                  i8] c"2 32 16 9 imageSize 64 8 6 object\00", align 1<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; Function Attrs: noinline sanitize_address ssp
                  uwtable<br class="gmail_msg">
                  +define internal i8* @"\01+[MyObject doWithSize:]"(i8*
                  %self, i8* %_cmd, [2 x double] %imageSize.coerce) #0
                  !dbg !14 {<br class="gmail_msg">
                  +entry:<br class="gmail_msg">
                  +  %0 = load i64, i64*
                  @__asan_shadow_memory_dynamic_address<br
                    class="gmail_msg">
                  +  %self.addr = alloca i8*, align 8<br
                    class="gmail_msg">
                  +  %_cmd.addr = alloca i8*, align 8<br
                    class="gmail_msg">
                  +  %MyAlloca = alloca [96 x i8], align 32, !dbg !35<br
                    class="gmail_msg">
                  +  %1 = ptrtoint [96 x i8]* %MyAlloca to i64, !dbg !35<br
                    class="gmail_msg">
                  +  %2 = add i64 %1, 32, !dbg !35<br class="gmail_msg">
                  +  %3 = inttoptr i64 %2 to %struct.CGSize*, !dbg !35<br
                    class="gmail_msg">
                  +  %4 = add i64 %1, 64, !dbg !35<br class="gmail_msg">
                  +  %5 = inttoptr i64 %4 to %0**, !dbg !35<br
                    class="gmail_msg">
                  +  %6 = inttoptr i64 %1 to i64*, !dbg !35<br
                    class="gmail_msg">
                  +  store i64 1102416563, i64* %6, !dbg !35<br
                    class="gmail_msg">
                  +  %7 = add i64 %1, 8, !dbg !35<br class="gmail_msg">
                  +  %8 = inttoptr i64 %7 to i64*, !dbg !35<br
                    class="gmail_msg">
                  +  store i64 ptrtoint ([34 x i8]* @__asan_gen_ to
                  i64), i64* %8, !dbg !35<br class="gmail_msg">
                  +  %9 = add i64 %1, 16, !dbg !35<br class="gmail_msg">
                  +  %10 = inttoptr i64 %9 to i64*, !dbg !35<br
                    class="gmail_msg">
                  +  store i64 ptrtoint (i8* (i8*, i8*, [2 x double])*
                  @"\01+[MyObject doWithSize:]" to i64), i64* %10, !dbg
                  !35<br class="gmail_msg">
                  +  %11 = lshr i64 %1, 3, !dbg !35<br class="gmail_msg">
                  +  %12 = add i64 %11, %0, !dbg !35<br
                    class="gmail_msg">
                  +  %13 = add i64 %12, 0, !dbg !35<br class="gmail_msg">
                  +  %14 = inttoptr i64 %13 to i64*, !dbg !35<br
                    class="gmail_msg">
                  +  store i64 -940689368107847183, i64* %14, align 1,
                  !dbg !35<br class="gmail_msg">
                  +  %15 = add i64 %12, 9, !dbg !35<br class="gmail_msg">
                  +  %16 = inttoptr i64 %15 to i16*, !dbg !35<br
                    class="gmail_msg">
                  +  store i16 -3085, i16* %16, align 1, !dbg !35<br
                    class="gmail_msg">
                  +  %17 = add i64 %12, 11, !dbg !35<br
                    class="gmail_msg">
                  +  %18 = inttoptr i64 %17 to i8*, !dbg !35<br
                    class="gmail_msg">
                  +  store i8 -13, i8* %18, align 1, !dbg !35<br
                    class="gmail_msg">
                  +  call void @llvm.dbg.declare(metadata
                  %struct.CGSize* %3, metadata !36, metadata !37), !dbg
                  !38<br class="gmail_msg">
                  +  call void @llvm.dbg.declare(metadata %0** %5,
                  metadata !39, metadata !37), !dbg !45<br
                    class="gmail_msg">
                  +  %19 = bitcast %struct.CGSize* %3 to [2 x double]*<br
                    class="gmail_msg">
                  +  %20 = ptrtoint [2 x double]* %19 to i64<br
                    class="gmail_msg">
                  +  %21 = lshr i64 %20, 3<br class="gmail_msg">
                  +  %22 = add i64 %21, %0<br class="gmail_msg">
                  +  %23 = inttoptr i64 %22 to i16*<br class="gmail_msg">
                  +  %24 = load i16, i16* %23<br class="gmail_msg">
                  +  %25 = icmp ne i16 %24, 0<br class="gmail_msg">
                  +  br i1 %25, label %26, label %27<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:26:                                 
                     ; preds = %entry<br class="gmail_msg">
                  +  call void @__asan_report_store16(i64 %20)<br
                    class="gmail_msg">
                  +  call void asm sideeffect "", ""()<br
                    class="gmail_msg">
                  +  unreachable<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:27:                                 
                     ; preds = %entry<br class="gmail_msg">
                  +  store [2 x double] %imageSize.coerce, [2 x double]*
                  %19, align 8<br class="gmail_msg">
                  +  store i8* %self, i8** %self.addr, align 8<br
                    class="gmail_msg">
                  +  call void @llvm.dbg.declare(metadata i8**
                  %self.addr, metadata !46, metadata !48), !dbg !49<br
                    class="gmail_msg">
                  +  store i8* %_cmd, i8** %_cmd.addr, align 8<br
                    class="gmail_msg">
                  +  call void @llvm.dbg.declare(metadata i8**
                  %_cmd.addr, metadata !50, metadata !48), !dbg !49<br
                    class="gmail_msg">
                  +  %28 = load %struct._class_t*, %struct._class_t**
                  @"OBJC_CLASSLIST_REFERENCES_$_", align 8, !dbg !52<br
                    class="gmail_msg">
                  +  %29 = add i64 lshr (i64 ptrtoint (i8**
                  @OBJC_SELECTOR_REFERENCES_ to i64), i64 3), %0, !dbg
                  !52<br class="gmail_msg">
                  +  %30 = inttoptr i64 %29 to i8*, !dbg !52<br
                    class="gmail_msg">
                  +  %31 = load i8, i8* %30, !dbg !52<br
                    class="gmail_msg">
                  +  %32 = icmp ne i8 %31, 0, !dbg !52<br
                    class="gmail_msg">
                  +  br i1 %32, label %33, label %34, !dbg !52<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:33:                                 
                     ; preds = %27<br class="gmail_msg">
                  +  call void @__asan_report_load8(i64 ptrtoint (i8**
                  @OBJC_SELECTOR_REFERENCES_ to i64)), !dbg !52<br
                    class="gmail_msg">
                  +  call void asm sideeffect "", ""(), !dbg !52<br
                    class="gmail_msg">
                  +  unreachable, !dbg !52<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:34:                                 
                     ; preds = %27<br class="gmail_msg">
                  +  %35 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_,
                  align 8, !dbg !52, !invariant.load !2<br
                    class="gmail_msg">
                  +  %36 = bitcast %struct._class_t* %28 to i8*, !dbg
                  !52<br class="gmail_msg">
                  +  %call = call i8* bitcast (i8* (i8*, i8*, ...)*
                  @objc_msgSend to i8* (i8*, i8*)*)(i8* %36, i8* %35),
                  !dbg !52<br class="gmail_msg">
                  +  %37 = bitcast i8* %call to %0*, !dbg !52<br
                    class="gmail_msg">
                  +  %38 = add i64 lshr (i64 ptrtoint (i8**
                  @OBJC_SELECTOR_REFERENCES_.2 to i64), i64 3), %0, !dbg
                  !53<br class="gmail_msg">
                  +  %39 = inttoptr i64 %38 to i8*, !dbg !53<br
                    class="gmail_msg">
                  +  %40 = load i8, i8* %39, !dbg !53<br
                    class="gmail_msg">
                  +  %41 = icmp ne i8 %40, 0, !dbg !53<br
                    class="gmail_msg">
                  +  br i1 %41, label %42, label %43, !dbg !53<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:42:                                 
                     ; preds = %34<br class="gmail_msg">
                  +  call void @__asan_report_load8(i64 ptrtoint (i8**
                  @OBJC_SELECTOR_REFERENCES_.2 to i64)), !dbg !53<br
                    class="gmail_msg">
                  +  call void asm sideeffect "", ""(), !dbg !53<br
                    class="gmail_msg">
                  +  unreachable, !dbg !53<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:43:                                 
                     ; preds = %34<br class="gmail_msg">
                  +  %44 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.2,
                  align 8, !dbg !53, !invariant.load !2<br
                    class="gmail_msg">
                  +  %45 = bitcast %0* %37 to i8*, !dbg !53<br
                    class="gmail_msg">
                  +  %46 = bitcast %struct.CGSize* %3 to [2 x double]*,
                  !dbg !53<br class="gmail_msg">
                  +  %47 = ptrtoint [2 x double]* %46 to i64, !dbg !53<br
                    class="gmail_msg">
                  +  %48 = lshr i64 %47, 3, !dbg !53<br
                    class="gmail_msg">
                  +  %49 = add i64 %48, %0, !dbg !53<br
                    class="gmail_msg">
                  +  %50 = inttoptr i64 %49 to i16*, !dbg !53<br
                    class="gmail_msg">
                  +  %51 = load i16, i16* %50, !dbg !53<br
                    class="gmail_msg">
                  +  %52 = icmp ne i16 %51, 0, !dbg !53<br
                    class="gmail_msg">
                  +  br i1 %52, label %53, label %54, !dbg !53<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:53:                                 
                     ; preds = %43<br class="gmail_msg">
                  +  call void @__asan_report_load16(i64 %47), !dbg !53<br
                    class="gmail_msg">
                  +  call void asm sideeffect "", ""(), !dbg !53<br
                    class="gmail_msg">
                  +  unreachable, !dbg !53<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:54:                                 
                     ; preds = %43<br class="gmail_msg">
                  +  %55 = load [2 x double], [2 x double]* %46, align
                  8, !dbg !53<br class="gmail_msg">
                  +  %call1 = call i8* bitcast (i8* (i8*, i8*, ...)*
                  @objc_msgSend to i8* (i8*, i8*, [2 x double])*)(i8*
                  %45, i8* %44, [2 x double] %55), !dbg !53<br
                    class="gmail_msg">
                  +  %56 = bitcast i8* %call1 to %0*, !dbg !53<br
                    class="gmail_msg">
                  +  %57 = ptrtoint %0** %5 to i64, !dbg !45<br
                    class="gmail_msg">
                  +  %58 = lshr i64 %57, 3, !dbg !45<br
                    class="gmail_msg">
                  +  %59 = add i64 %58, %0, !dbg !45<br
                    class="gmail_msg">
                  +  %60 = inttoptr i64 %59 to i8*, !dbg !45<br
                    class="gmail_msg">
                  +  %61 = load i8, i8* %60, !dbg !45<br
                    class="gmail_msg">
                  +  %62 = icmp ne i8 %61, 0, !dbg !45<br
                    class="gmail_msg">
                  +  br i1 %62, label %63, label %64, !dbg !45<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:63:                                 
                     ; preds = %54<br class="gmail_msg">
                  +  call void @__asan_report_store8(i64 %57), !dbg !45<br
                    class="gmail_msg">
                  +  call void asm sideeffect "", ""(), !dbg !45<br
                    class="gmail_msg">
                  +  unreachable, !dbg !45<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:64:                                 
                     ; preds = %54<br class="gmail_msg">
                  +  store %0* %56, %0** %5, align 8, !dbg !45<br
                    class="gmail_msg">
                  +  %65 = load %0*, %0** %5, align 8, !dbg !54<br
                    class="gmail_msg">
                  +  %66 = add i64 lshr (i64 ptrtoint (i8**
                  @OBJC_SELECTOR_REFERENCES_.4 to i64), i64 3), %0, !dbg
                  !55<br class="gmail_msg">
                  +  %67 = inttoptr i64 %66 to i8*, !dbg !55<br
                    class="gmail_msg">
                  +  %68 = load i8, i8* %67, !dbg !55<br
                    class="gmail_msg">
                  +  %69 = icmp ne i8 %68, 0, !dbg !55<br
                    class="gmail_msg">
                  +  br i1 %69, label %70, label %71, !dbg !55<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:70:                                 
                     ; preds = %64<br class="gmail_msg">
                  +  call void @__asan_report_load8(i64 ptrtoint (i8**
                  @OBJC_SELECTOR_REFERENCES_.4 to i64)), !dbg !55<br
                    class="gmail_msg">
                  +  call void asm sideeffect "", ""(), !dbg !55<br
                    class="gmail_msg">
                  +  unreachable, !dbg !55<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; <label>:71:                                 
                     ; preds = %64<br class="gmail_msg">
                  +  %72 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.4,
                  align 8, !dbg !55, !invariant.load !2<br
                    class="gmail_msg">
                  +  %73 = bitcast %0* %65 to i8*, !dbg !55<br
                    class="gmail_msg">
                  +  %call2 = call i8* bitcast (i8* (i8*, i8*, ...)*
                  @objc_msgSend to i8* (i8*, i8*)*)(i8* %73, i8* %72),
                  !dbg !55<br class="gmail_msg">
                  +  call void asm sideeffect "mov\09fp, fp\09\09#
                  marker for objc_retainAutoreleaseReturnValue", ""(),
                  !dbg !55<br class="gmail_msg">
                  +  %74 = call i8*
                  @objc_retainAutoreleasedReturnValue(i8* %call2) #3,
                  !dbg !55<br class="gmail_msg">
                  +  %75 = bitcast %0** %5 to i8**, !dbg !56<br
                    class="gmail_msg">
                  +  call void @objc_storeStrong(i8** %75, i8* null) #3,
                  !dbg !56<br class="gmail_msg">
                  +  %76 = tail call i8*
                  @objc_autoreleaseReturnValue(i8* %74) #3, !dbg !56<br
                    class="gmail_msg">
                  +  store i64 1172321806, i64* %6, !dbg !56<br
                    class="gmail_msg">
                  +  %77 = add i64 %12, 0, !dbg !56<br class="gmail_msg">
                  +  %78 = inttoptr i64 %77 to i64*, !dbg !56<br
                    class="gmail_msg">
                  +  store i64 0, i64* %78, align 1, !dbg !56<br
                    class="gmail_msg">
                  +  %79 = add i64 %12, 9, !dbg !56<br class="gmail_msg">
                  +  %80 = inttoptr i64 %79 to i16*, !dbg !56<br
                    class="gmail_msg">
                  +  store i16 0, i16* %80, align 1, !dbg !56<br
                    class="gmail_msg">
                  +  %81 = add i64 %12, 11, !dbg !56<br
                    class="gmail_msg">
                  +  %82 = inttoptr i64 %81 to i8*, !dbg !56<br
                    class="gmail_msg">
                  +  store i8 0, i8* %82, align 1, !dbg !56<br
                    class="gmail_msg">
                  +  ret i8* %76, !dbg !56<br class="gmail_msg">
                  +}<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; Function Attrs: nounwind readnone<br
                    class="gmail_msg">
                  +declare void @llvm.dbg.declare(metadata, metadata,
                  metadata) #1<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +; Function Attrs: nonlazybind<br class="gmail_msg">
                  +declare i8* @objc_msgSend(i8*, i8*, ...) #2<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare i8* @objc_retainAutoreleasedReturnValue(i8*
                  returned)<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @objc_storeStrong(i8**, i8*)<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare i8* @objc_autoreleaseReturnValue(i8*
                  returned)<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +define internal void @asan.module_ctor() {<br
                    class="gmail_msg">
                  +  call void @__asan_init()<br class="gmail_msg">
                  +  call void @__asan_version_mismatch_check_v8()<br
                    class="gmail_msg">
                  +  ret void<br class="gmail_msg">
                  +}<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @__asan_init()<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @__asan_version_mismatch_check_v8()<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @__asan_report_load8(i64)<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @__asan_report_load16(i64)<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @__asan_report_store8(i64)<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +declare void @__asan_report_store16(i64)<br
                    class="gmail_msg">
                  +<br class="gmail_msg">
                  +attributes #0 = { noinline sanitize_address ssp
                  uwtable }<br class="gmail_msg">
                  +attributes #1 = { nounwind readnone }<br
                    class="gmail_msg">
                  +attributes #2 = { nonlazybind }<br class="gmail_msg">
                  +attributes #3 = { nounwind }<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +!<a moz-do-not-send="true" href="http://llvm.dbg.cu/"
                    rel="noreferrer" class="gmail_msg" target="_blank">llvm.dbg.cu</a>
                  = !{!0}<br class="gmail_msg">
                  +!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11,
                  !12}<br class="gmail_msg">
                  +!llvm.ident = !{!13}<br class="gmail_msg">
                  +<br class="gmail_msg">
                  +!0 = distinct !DICompileUnit(language: DW_LANG_ObjC,
                  file: !1, producer: "clang version 5.0.0 (trunk
                  295779) (llvm/trunk 295777)", isOptimized: false,
                  runtimeVersion: 2, emissionKind: FullDebug, enums: !2,
                  retainedTypes: !3)<br class="gmail_msg">
                  +!1 = !DIFile(filename: "m.m", directory: "/")<br
                    class="gmail_msg">
                  +!2 = !{}<br class="gmail_msg">
                  +!3 = !{!4}<br class="gmail_msg">
                  +!4 = !DICompositeType(tag: DW_TAG_structure_type,
                  name: "MyObject", scope: !1, file: !1, line: 15,
                  flags: DIFlagObjcClassComplete, elements: !2,
                  runtimeLang: DW_LANG_ObjC)<br class="gmail_msg">
                  +!5 = !{i32 1, !"Objective-C Version", i32 2}<br
                    class="gmail_msg">
                  +!6 = !{i32 1, !"Objective-C Image Info Version", i32
                  0}<br class="gmail_msg">
                  +!7 = !{i32 1, !"Objective-C Image Info Section",
                  !"__DATA, __objc_imageinfo, regular, no_dead_strip"}<br
                    class="gmail_msg">
                  +!8 = !{i32 4, !"Objective-C Garbage Collection", i32
                  0}<br class="gmail_msg">
                  +!9 = !{i32 1, !"Objective-C Class Properties", i32
                  64}<br class="gmail_msg">
                  +!10 = !{i32 2, !"Dwarf Version", i32 2}<br
                    class="gmail_msg">
                  +!11 = !{i32 2, !"Debug Info Version", i32 3}<br
                    class="gmail_msg">
                  +!12 = !{i32 1, !"PIC Level", i32 2}<br
                    class="gmail_msg">
                  +!13 = !{!"clang version 5.0.0 (trunk 295779)
                  (llvm/trunk 295777)"}<br class="gmail_msg">
                  +!14 = distinct !DISubprogram(name: "+[MyObject
                  doWithSize:]", scope: !1, file: !1, line: 16, type:
                  !15, isLocal: true, isDefinition: true, scopeLine: 16,
                  flags: DIFlagPrototyped, isOptimized: false, unit: !0,
                  variables: !2)<br class="gmail_msg">
                  +!15 = !DISubroutineType(types: !16)<br
                    class="gmail_msg">
                  +!16 = !{!17, !24, !26, !29}<br class="gmail_msg">
                  +!17 = !DIDerivedType(tag: DW_TAG_typedef, name: "id",
                  file: !1, baseType: !18)<br class="gmail_msg">
                  +!18 = !DIDerivedType(tag: DW_TAG_pointer_type,
                  baseType: !19, size: 64)<br class="gmail_msg">
                  +!19 = !DICompositeType(tag: DW_TAG_structure_type,
                  name: "objc_object", file: !1, elements: !20)<br
                    class="gmail_msg">
                  +!20 = !{!21}<br class="gmail_msg">
                  +!21 = !DIDerivedType(tag: DW_TAG_member, name: "isa",
                  scope: !19, file: !1, baseType: !22, size: 64)<br
                    class="gmail_msg">
                  +!22 = !DIDerivedType(tag: DW_TAG_pointer_type,
                  baseType: !23, size: 64)<br class="gmail_msg">
                  +!23 = !DICompositeType(tag: DW_TAG_structure_type,
                  name: "objc_class", file: !1, flags: DIFlagFwdDecl)<br
                    class="gmail_msg">
                  +!24 = !DIDerivedType(tag: DW_TAG_const_type,
                  baseType: !25, flags: DIFlagArtificial |
                  DIFlagObjectPointer)<br class="gmail_msg">
                  +!25 = !DIDerivedType(tag: DW_TAG_typedef, name:
                  "Class", file: !1, baseType: !22)<br class="gmail_msg">
                  +!26 = !DIDerivedType(tag: DW_TAG_typedef, name:
                  "SEL", file: !1, baseType: !27, flags:
                  DIFlagArtificial)<br class="gmail_msg">
                  +!27 = !DIDerivedType(tag: DW_TAG_pointer_type,
                  baseType: !28, size: 64)<br class="gmail_msg">
                  +!28 = !DICompositeType(tag: DW_TAG_structure_type,
                  name: "objc_selector", file: !1, flags: DIFlagFwdDecl)<br
                    class="gmail_msg">
                  +!29 = !DIDerivedType(tag: DW_TAG_typedef, name:
                  "CGSize", file: !1, line: 10, baseType: !30)<br
                    class="gmail_msg">
                  +!30 = distinct !DICompositeType(tag:
                  DW_TAG_structure_type, name: "CGSize", file: !1, line:
                  6, size: 128, elements: !31)<br class="gmail_msg">
                  +!31 = !{!32, !34}<br class="gmail_msg">
                  +!32 = !DIDerivedType(tag: DW_TAG_member, name:
                  "width", scope: !30, file: !1, line: 7, baseType: !33,
                  size: 64)<br class="gmail_msg">
                  +!33 = !DIBasicType(name: "double", size: 64,
                  encoding: DW_ATE_float)<br class="gmail_msg">
                  +!34 = !DIDerivedType(tag: DW_TAG_member, name:
                  "height", scope: !30, file: !1, line: 8, baseType:
                  !33, size: 64, offset: 64)<br class="gmail_msg">
                  +!35 = !DILocation(line: 16, scope: !14)<br
                    class="gmail_msg">
                  +!36 = !DILocalVariable(name: "imageSize", arg: 3,
                  scope: !14, file: !1, line: 16, type: !29)<br
                    class="gmail_msg">
                  +!37 = !DIExpression(DW_OP_deref)<br class="gmail_msg">
                  +!38 = !DILocation(line: 16, column: 26, scope: !14)<br
                    class="gmail_msg">
                  +!39 = !DILocalVariable(name: "object", scope: !14,
                  file: !1, line: 17, type: !40)<br class="gmail_msg">
                  +!40 = !DIDerivedType(tag: DW_TAG_pointer_type,
                  baseType: !41, size: 64)<br class="gmail_msg">
                  +!41 = !DICompositeType(tag: DW_TAG_structure_type,
                  name: "Object", scope: !1, file: !1, line: 11,
                  elements: !42, runtimeLang: DW_LANG_ObjC)<br
                    class="gmail_msg">
                  +!42 = !{!43}<br class="gmail_msg">
                  +!43 = !DIDerivedType(tag: DW_TAG_inheritance, scope:
                  !41, baseType: !44)<br class="gmail_msg">
                  +!44 = !DICompositeType(tag: DW_TAG_structure_type,
                  name: "NSObject", scope: !1, file: !1, line: 3,
                  elements: !2, runtimeLang: DW_LANG_ObjC)<br
                    class="gmail_msg">
                  +!45 = !DILocation(line: 17, column: 11, scope: !14)<br
                    class="gmail_msg">
                  +!46 = !DILocalVariable(name: "self", arg: 1, scope:
                  !14, type: !47, flags: DIFlagArtificial |
                  DIFlagObjectPointer)<br class="gmail_msg">
                  +!47 = !DIDerivedType(tag: DW_TAG_const_type,
                  baseType: !25)<br class="gmail_msg">
                  +!48 = !DIExpression()<br class="gmail_msg">
                  +!49 = !DILocation(line: 0, scope: !14)<br
                    class="gmail_msg">
                  +!50 = !DILocalVariable(name: "_cmd", arg: 2, scope:
                  !14, type: !51, flags: DIFlagArtificial)<br
                    class="gmail_msg">
                  +!51 = !DIDerivedType(tag: DW_TAG_typedef, name:
                  "SEL", file: !1, baseType: !27)<br class="gmail_msg">
                  +!52 = !DILocation(line: 17, column: 21, scope: !14)<br
                    class="gmail_msg">
                  +!53 = !DILocation(line: 17, column: 20, scope: !14)<br
                    class="gmail_msg">
                  +!54 = !DILocation(line: 18, column: 11, scope: !14)<br
                    class="gmail_msg">
                  +!55 = !DILocation(line: 18, column: 10, scope: !14)<br
                    class="gmail_msg">
                  +!56 = !DILocation(line: 19, column: 1, scope: !14)<br
                    class="gmail_msg">
                  <br class="gmail_msg">
                  <br class="gmail_msg">
                  _______________________________________________<br
                    class="gmail_msg">
                  llvm-commits mailing list<br class="gmail_msg">
                  <a moz-do-not-send="true"
                    href="mailto:llvm-commits@lists.llvm.org"
                    class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br
                    class="gmail_msg">
                  <a moz-do-not-send="true"
                    href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits"
                    rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br
                    class="gmail_msg">
                </blockquote>
              </div>
            </div>
          </div>
        </blockquote>
      </div>
      <br class="">
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
llvm-commits mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>