<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Mar 9, 2017, at 7:07 AM, Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="">hfinkel@anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" class="">
  
  <div bgcolor="#FFFFFF" text="#000000" class=""><p class=""><br class="">
    </p>
    <div class="moz-cite-prefix">On 03/06/2017 04:48 PM, Adrian Prantl
      via llvm-commits wrote:<br class="">
    </div>
    <blockquote cite="mid:AE0946C4-1FAF-4BC5-99C9-137BCF2B376F@apple.com" type="cite" class="">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
      <br class="">
      <div class="">
        <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 class="">
    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 class=""></div></div></blockquote><div><br class=""></div><div>That's a good point, thanks. I guess what we really want to know in LiveDebugValues is whether a function call (or rather the combination of instructions pushing the argument and the function call) clobbers any variables that are stored in the caller's frame, and that isn't the case (right?). I should at the very least improve the wording in the comment.</div><div><br class=""></div><div>thanks,</div><div>adrian</div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class="">
    <br class="">
    Thanks again,<br class="">
    Hal<br class="">
    <br class="">
    <blockquote cite="mid:AE0946C4-1FAF-4BC5-99C9-137BCF2B376F@apple.com" type="cite" class="">
      <div class="">
        <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 class=""><br class="">
        </div>
        <div class="">Yes they should, but my understanding is that this is a
          larger undertaking that is not likely to happen anytime soon.</div>
        <div class=""><br class="">
        </div>
        <div class="">-- 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 class="">
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br class="">
      <pre wrap="" class="">_______________________________________________
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 class="">
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </div>

</div></blockquote></div><br class=""></body></html>