<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;">Done.<div><br></div><div>-bw</div><div><br><div style=""><div>On Dec 9, 2013, at 11:32 AM, Chandler Carruth <<a href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Bill, please pull this into the 3.4 branch. There may be some follow-up patches as well.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 9, 2013 at 11:25 AM, Chandler Carruth <span dir="ltr"><<a href="mailto:chandlerc@gmail.com" target="_blank">chandlerc@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: chandlerc<br>
Date: Mon Dec  9 13:25:51 2013<br>
New Revision: 196802<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=196802&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=196802&view=rev</a><br>
Log:<br>
Revert three patches which were committed without explicit contribution<br>
by their authors.<br>
<br>
This may break builds where others added code relying on these patches,<br>
but please *do not* revert this commit. Instead, we will prepare patches<br>
which fix the failures.<br>
<br>
Reverts the following commits:<br>
r168306: "[asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu"<br>
r168356: "[asan] more support for powerpc, patch by Peter Bergner"<br>
r196489: "[sanitizer] fix the ppc32 build (patch by Jakub Jelinek)"<br>
<br>
Modified:<br>
    compiler-rt/trunk/lib/asan/asan_linux.cc<br>
    compiler-rt/trunk/lib/asan/asan_mapping.h<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc<br>
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_linux.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_linux.cc?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_linux.cc?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_linux.cc (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_linux.cc Mon Dec  9 13:25:51 2013<br>
@@ -74,13 +74,6 @@ void GetPcSpBp(void *context, uptr *pc,<br>
   *pc = ucontext->uc_mcontext.gregs[REG_EIP];<br>
   *bp = ucontext->uc_mcontext.gregs[REG_EBP];<br>
   *sp = ucontext->uc_mcontext.gregs[REG_ESP];<br>
-# elif defined(__powerpc__) || defined(__powerpc64__)<br>
-  ucontext_t *ucontext = (ucontext_t*)context;<br>
-  *pc = ucontext->uc_mcontext.regs->nip;<br>
-  *sp = ucontext->uc_mcontext.regs->gpr[PT_R1];<br>
-  // The powerpc{,64}-linux ABIs do not specify r31 as the frame<br>
-  // pointer, but GCC always uses r31 when we need a frame pointer.<br>
-  *bp = ucontext->uc_mcontext.regs->gpr[PT_R31];<br>
 # elif defined(__sparc__)<br>
   ucontext_t *ucontext = (ucontext_t*)context;<br>
   uptr *stk_ptr;<br>
<br>
Modified: compiler-rt/trunk/lib/asan/asan_mapping.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_mapping.h?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_mapping.h?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/asan/asan_mapping.h (original)<br>
+++ compiler-rt/trunk/lib/asan/asan_mapping.h Mon Dec  9 13:25:51 2013<br>
@@ -61,7 +61,6 @@ static const u64 kDefaultShadowScale = 3<br>
 static const u64 kDefaultShadowOffset32 = 1ULL << 29;<br>
 static const u64 kDefaultShadowOffset64 = 1ULL << 44;<br>
 static const u64 kDefaultShort64bitShadowOffset = 0x7FFF8000;  // < 2G.<br>
-static const u64 kPPC64_ShadowOffset64 = 1ULL << 41;<br>
 static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000;<br>
<br>
 #if ASAN_FLEXIBLE_MAPPING_AND_OFFSET == 1<br>
@@ -81,9 +80,7 @@ extern "C" SANITIZER_INTERFACE_ATTRIBUTE<br>
 #     define SHADOW_OFFSET kDefaultShadowOffset32<br>
 #   endif<br>
 #  else<br>
-#   if defined(__powerpc64__)<br>
-#    define SHADOW_OFFSET kPPC64_ShadowOffset64<br>
-#   elif SANITIZER_MAC<br>
+#   if SANITIZER_MAC<br>
 #    define SHADOW_OFFSET kDefaultShadowOffset64<br>
 #   else<br>
 #    define SHADOW_OFFSET kDefaultShort64bitShadowOffset<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.h Mon Dec  9 13:25:51 2013<br>
@@ -27,11 +27,7 @@ struct StackTrace;<br>
 const uptr kWordSize = SANITIZER_WORDSIZE / 8;<br>
 const uptr kWordSizeInBits = 8 * kWordSize;<br>
<br>
-#if defined(__powerpc__) || defined(__powerpc64__)<br>
-const uptr kCacheLineSize = 128;<br>
-#else<br>
 const uptr kCacheLineSize = 64;<br>
-#endif<br>
<br>
 const uptr kMaxPathLength = 512;<br>
<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_internal_defs.h Mon Dec  9 13:25:51 2013<br>
@@ -58,13 +58,6 @@ typedef signed   long long sptr;  // NOL<br>
 typedef unsigned long uptr;  // NOLINT<br>
 typedef signed   long sptr;  // NOLINT<br>
 #endif  // defined(_WIN64)<br>
-#if defined(__x86_64__)<br>
-// Since x32 uses ILP32 data model in 64-bit hardware mode,  we must use<br>
-// 64-bit pointer to unwind stack frame.<br>
-typedef unsigned long long uhwptr;  // NOLINT<br>
-#else<br>
-typedef uptr uhwptr;   // NOLINT<br>
-#endif<br>
 typedef unsigned char u8;<br>
 typedef unsigned short u16;  // NOLINT<br>
 typedef unsigned int u32;<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_limits_posix.h Mon Dec  9 13:25:51 2013<br>
@@ -142,32 +142,23 @@ namespace __sanitizer {<br>
     int gid;<br>
     int cuid;<br>
     int cgid;<br>
-#ifdef __powerpc__<br>
+#ifdef __powerpc64__<br>
     unsigned mode;<br>
     unsigned __seq;<br>
-    u64 __unused1;<br>
-    u64 __unused2;<br>
 #else<br>
     unsigned short mode;<br>
     unsigned short __pad1;<br>
     unsigned short __seq;<br>
     unsigned short __pad2;<br>
-#if defined(__x86_64__) && !defined(_LP64)<br>
-    u64 __unused1;<br>
-    u64 __unused2;<br>
-#else<br>
-    unsigned long __unused1;<br>
-    unsigned long __unused2;<br>
-#endif<br>
 #endif<br>
+    uptr __unused1;<br>
+    uptr __unused2;<br>
   };<br>
<br>
   struct __sanitizer_shmid_ds {<br>
     __sanitizer_ipc_perm shm_perm;<br>
   #ifndef __powerpc__<br>
     uptr shm_segsz;<br>
-  #elif !defined(__powerpc64__)<br>
-    uptr __unused0;<br>
   #endif<br>
     uptr shm_atime;<br>
   #ifndef _LP64<br>
@@ -299,20 +290,17 @@ namespace __sanitizer {<br>
   typedef long __sanitizer_clock_t;<br>
<br>
 #if SANITIZER_LINUX<br>
-#if defined(_LP64) || defined(__x86_64__) || defined(__powerpc__)<br>
+#if defined(_LP64) || defined(__x86_64__)<br>
   typedef unsigned __sanitizer___kernel_uid_t;<br>
   typedef unsigned __sanitizer___kernel_gid_t;<br>
+  typedef long long __sanitizer___kernel_off_t;<br>
 #else<br>
   typedef unsigned short __sanitizer___kernel_uid_t;<br>
   typedef unsigned short __sanitizer___kernel_gid_t;<br>
-#endif<br>
-#if defined(__x86_64__) && !defined(_LP64)<br>
-  typedef long long __sanitizer___kernel_off_t;<br>
-#else<br>
   typedef long __sanitizer___kernel_off_t;<br>
 #endif<br>
<br>
-#if defined(__powerpc__)<br>
+#if defined(__powerpc64__)<br>
   typedef unsigned int __sanitizer___kernel_old_uid_t;<br>
   typedef unsigned int __sanitizer___kernel_old_gid_t;<br>
 #else<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc Mon Dec  9 13:25:51 2013<br>
@@ -24,10 +24,7 @@ uptr StackTrace::GetPreviousInstructionP<br>
   // Cancel Thumb bit.<br>
   pc = pc & (~1);<br>
 #endif<br>
-#if defined(__powerpc__) || defined(__powerpc64__)<br>
-  // PCs are always 4 byte aligned.<br>
-  return pc - 4;<br>
-#elif defined(__sparc__)<br>
+#if defined(__sparc__)<br>
   return pc - 8;<br>
 #else<br>
   return pc - 1;<br>
@@ -128,29 +125,21 @@ void StackTrace::FastUnwindStack(uptr pc<br>
   }<br>
   trace[0] = pc;<br>
   size = 1;<br>
-  uhwptr *frame = (uhwptr *)bp;<br>
-  uhwptr *prev_frame = frame - 1;<br>
+  uptr *frame = (uptr *)bp;<br>
+  uptr *prev_frame = frame - 1;<br>
   if (stack_top < 4096) return;  // Sanity check for stack top.<br>
   // Avoid infinite loop when frame == frame[0] by using frame > prev_frame.<br>
   while (frame > prev_frame &&<br>
-         frame < (uhwptr *)stack_top - 2 &&<br>
-         frame > (uhwptr *)stack_bottom &&<br>
+         frame < (uptr *)stack_top - 2 &&<br>
+         frame > (uptr *)stack_bottom &&<br>
          IsAligned((uptr)frame, sizeof(*frame)) &&<br>
          size < max_depth) {<br>
-    uhwptr pc1 = frame[1];<br>
+    uptr pc1 = frame[1];<br>
     if (pc1 != pc) {<br>
-      trace[size++] = (uptr) pc1;<br>
+      trace[size++] = pc1;<br>
     }<br>
     prev_frame = frame;<br>
-    frame = (uhwptr *)frame[0];<br>
-  }<br>
-}<br>
-<br>
-void StackTrace::PopStackFrames(uptr count) {<br>
-  CHECK(size >= count);<br>
-  size -= count;<br>
-  for (uptr i = 0; i < size; i++) {<br>
-    trace[i] = trace[i + count];<br>
+    frame = (uptr*)frame[0];<br>
   }<br>
 }<br>
<br>
<br>
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h?rev=196802&r1=196801&r2=196802&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h?rev=196802&r1=196801&r2=196802&view=diff</a><br>

==============================================================================<br>
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h (original)<br>
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h Mon Dec  9 13:25:51 2013<br>
@@ -68,7 +68,6 @@ struct StackTrace {<br>
   void FastUnwindStack(uptr pc, uptr bp, uptr stack_top, uptr stack_bottom,<br>
                        uptr max_depth);<br>
   void SlowUnwindStack(uptr pc, uptr max_depth);<br>
-  void PopStackFrames(uptr count);<br>
   uptr LocatePcInTrace(uptr pc);<br>
 };<br>
<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>
</blockquote></div><br></div></body></html>