Re: [llvm-branch-commits] [cfe-branch] r214778 - Merging r214777:

2014-08-26 Thread Hans Wennborg
On Mon, Aug 4, 2014 at 2:11 PM, Hans Wennborg h...@hanshq.net wrote:
 Author: hans
 Date: Mon Aug  4 16:11:53 2014
 New Revision: 214778

 URL: http://llvm.org/viewvc/llvm-project?rev=214778view=rev
 Log:
 Merging r214777:

 Excluding the /Zp option, because that was added after the 3.5 branch.

 
 r214777 | hans | 2014-08-04 14:07:58 -0700 (Mon, 04 Aug 2014) | 1 line

 UsersManual: update clang-cl options
 

 Modified:
 cfe/branches/release_35/   (props changed)
 cfe/branches/release_35/docs/UsersManual.rst
 
 cfe/branches/release_35/test/Analysis/MismatchedDeallocator-checker-test.mm   
 (props changed)
 cfe/branches/release_35/test/Analysis/NewDelete-checker-test.cpp   (props 
 changed)
 cfe/branches/release_35/test/SemaCXX/warn-unreachable.cpp   (props 
 changed)

Weird.. I have no idea why it committed props changes to files in
test/, that was certainly not my intention.

Since it's just metadata, maybe I can treat it as benign, or do you
think I should try to revert that part of the commit?
___
llvm-branch-commits mailing list
llvm-branch-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [compiler-rt-branch] r216035 - Merging r215295:

2014-08-26 Thread Renato Golin
Author: rengolin
Date: Tue Aug 19 18:30:32 2014
New Revision: 216035

URL: http://llvm.org/viewvc/llvm-project?rev=216035view=rev
Log:
Merging r215295:

r215295 | compnerd | 2014-08-09 21:17:37 +0100 (Sat, 09 Aug 2014) | 10 lines

builtins: correct __umodsi3, __udivsi3 on ARM

When building the builtins for a modern CPU (idiv support), __umodsi3 was
completely incorrect as it would behave as __udivmosi3, which takes a tertiary
parameter which is a pointer.

__udivsi3 was also incorrect, returning the remainder in r1.  Although this
would not result in any crash or invalid behaviour as r1 is a caller saved
register in AAPCS, this is unnecessary.  Simply perform the division ignoring
the remainder.


Modified:
compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S
compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S

Modified: compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S
URL: 
http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S?rev=216035r1=216034r2=216035view=diff
==
--- compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S (original)
+++ compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S Tue Aug 19 
18:30:32 2014
@@ -35,9 +35,7 @@ DEFINE_COMPILERRT_FUNCTION(__udivsi3)
 #if __ARM_ARCH_EXT_IDIV__
tst r1, r1
beq LOCAL_LABEL(divby0)
-   mov r3, r0
-   udivr0, r3, r1
-   mls r1, r0, r1, r3
+   udivr0, r0, r1
bx  lr
 #else
cmp r1, #1

Modified: compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S
URL: 
http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S?rev=216035r1=216034r2=216035view=diff
==
--- compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S (original)
+++ compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S Tue Aug 19 
18:30:32 2014
@@ -33,10 +33,8 @@ DEFINE_COMPILERRT_FUNCTION(__umodsi3)
 #if __ARM_ARCH_EXT_IDIV__
tst r1, r1
beq LOCAL_LABEL(divby0)
-   mov r3, r0
-   udivr0, r3, r1
-   mls r1, r0, r1, r3
-   str r1, [r2]
+   udivr2, r0, r1
+   mls r0, r2, r1, r0
bx  lr
 #else
cmp r1, #1


___
llvm-branch-commits mailing list
llvm-branch-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [cfe-branch] r214823 - Merging r214801:

2014-08-26 Thread Bill Schmidt
Author: wschmidt
Date: Mon Aug  4 18:48:10 2014
New Revision: 214823

URL: http://llvm.org/viewvc/llvm-project?rev=214823view=rev
Log:
Merging r214801:

r214801 | wschmidt | 2014-08-04 18:21:26 -0500 (Mon, 04 Aug 2014) | 19 lines

[PPC64LE] Fix wrong IR for vec_sld and vec_vsldoi

My original LE implementation of the vsldoi instruction, with its
altivec.h interfaces vec_sld and vec_vsldoi, produces incorrect
shufflevector operations in the LLVM IR.  Correct code is generated
because the back end handles the incorrect shufflevector in a
consistent manner.

This patch and a companion patch for LLVM correct this problem by
removing the fixup from altivec.h and the corresponding fixup from the
PowerPC back end.  Several test cases are also modified to reflect the
now-correct LLVM IR.

The vec_sums and vec_vsumsws interfaces in altivec.h are also fixed,
because they used vec_perm calls intended to be recognized as vsldoi
instructions.  These vec_perm calls are now replaced with code that
more clearly shows the intent of the transformation.




Modified:
cfe/branches/release_35/lib/Headers/altivec.h
cfe/branches/release_35/test/CodeGen/builtins-ppc-altivec.c

Modified: cfe/branches/release_35/lib/Headers/altivec.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/branches/release_35/lib/Headers/altivec.h?rev=214823r1=214822r2=214823view=diff
==
--- cfe/branches/release_35/lib/Headers/altivec.h (original)
+++ cfe/branches/release_35/lib/Headers/altivec.h Mon Aug  4 18:48:10 2014
@@ -5224,113 +5224,65 @@ vec_vslw(vector unsigned int __a, vector
 static vector signed char __ATTRS_o_ai
 vec_sld(vector signed char __a, vector signed char __b, unsigned char __c)
 {
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(__a, __b, (vector unsigned char)
-(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
- __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
-#else
   return vec_perm(__a, __b, (vector unsigned char)
 (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
  __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
-#endif
 }
 
 static vector unsigned char __ATTRS_o_ai
 vec_sld(vector unsigned char __a, vector unsigned char __b, unsigned char __c)
 {
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(__a, __b, (vector unsigned char)
-(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
- __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
-#else
   return vec_perm(__a, __b, (vector unsigned char)
 (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
  __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
-#endif
 }
 
 static vector short __ATTRS_o_ai
 vec_sld(vector short __a, vector short __b, unsigned char __c)
 {
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(__a, __b, (vector unsigned char)
-(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
- __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
-#else
   return vec_perm(__a, __b, (vector unsigned char)
 (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
  __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
-#endif
 }
 
 static vector unsigned short __ATTRS_o_ai
 vec_sld(vector unsigned short __a, vector unsigned short __b, unsigned char 
__c)
 {
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(__a, __b, (vector unsigned char)
-(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
- __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
-#else
   return vec_perm(__a, __b, (vector unsigned char)
 (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
  __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
-#endif
 }
 
 static vector pixel __ATTRS_o_ai
 vec_sld(vector pixel __a, vector pixel __b, unsigned char __c)
 {
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(__a, __b, (vector unsigned char)
-(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
- __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
-#else
   return vec_perm(__a, __b, (vector unsigned char)
 (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
  __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
-#endif
 }
 
 static vector int __ATTRS_o_ai
 vec_sld(vector int __a, vector int __b, unsigned char __c)
 {
-#ifdef __LITTLE_ENDIAN__
-  return vec_perm(__a, __b, (vector unsigned char)
-(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
- __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
-#else
   return vec_perm(__a, __b, (vector unsigned char)
 (__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
  __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
-#endif
 }
 
 static vector unsigned int 

Re: [llvm-branch-commits] [compiler-rt-branch] r216035 - Merging r215295:

2014-08-26 Thread Bill Wendling
As I mentioned in a previous email, it’s far too late to be patching the 
release branch, especially without telling me first. Please revert this.

-bw

On Aug 19, 2014, at 4:30 PM, Renato Golin renato.go...@linaro.org wrote:

 Author: rengolin
 Date: Tue Aug 19 18:30:32 2014
 New Revision: 216035
 
 URL: http://llvm.org/viewvc/llvm-project?rev=216035view=rev
 Log:
 Merging r215295:
 
 r215295 | compnerd | 2014-08-09 21:17:37 +0100 (Sat, 09 Aug 2014) | 10 lines
 
 builtins: correct __umodsi3, __udivsi3 on ARM
 
 When building the builtins for a modern CPU (idiv support), __umodsi3 was
 completely incorrect as it would behave as __udivmosi3, which takes a tertiary
 parameter which is a pointer.
 
 __udivsi3 was also incorrect, returning the remainder in r1.  Although this
 would not result in any crash or invalid behaviour as r1 is a caller saved
 register in AAPCS, this is unnecessary.  Simply perform the division ignoring
 the remainder.
 
 
 Modified:
compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S
compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S
 
 Modified: compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S
 URL: 
 http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S?rev=216035r1=216034r2=216035view=diff
 ==
 --- compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S (original)
 +++ compiler-rt/branches/release_35/lib/builtins/arm/udivsi3.S Tue Aug 19 
 18:30:32 2014
 @@ -35,9 +35,7 @@ DEFINE_COMPILERRT_FUNCTION(__udivsi3)
 #if __ARM_ARCH_EXT_IDIV__
   tst r1, r1
   beq LOCAL_LABEL(divby0)
 - mov r3, r0
 - udivr0, r3, r1
 - mls r1, r0, r1, r3
 + udivr0, r0, r1
   bx  lr
 #else
   cmp r1, #1
 
 Modified: compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S
 URL: 
 http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S?rev=216035r1=216034r2=216035view=diff
 ==
 --- compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S (original)
 +++ compiler-rt/branches/release_35/lib/builtins/arm/umodsi3.S Tue Aug 19 
 18:30:32 2014
 @@ -33,10 +33,8 @@ DEFINE_COMPILERRT_FUNCTION(__umodsi3)
 #if __ARM_ARCH_EXT_IDIV__
   tst r1, r1
   beq LOCAL_LABEL(divby0)
 - mov r3, r0
 - udivr0, r3, r1
 - mls r1, r0, r1, r3
 - str r1, [r2]
 + udivr2, r0, r1
 + mls r0, r2, r1, r0
   bx  lr
 #else
   cmp r1, #1
 
 
 ___
 llvm-branch-commits mailing list
 llvm-branch-commits@cs.uiuc.edu
 http://lists.cs.uiuc.edu/mailman/listinfo/llvm-branch-commits


___
llvm-branch-commits mailing list
llvm-branch-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-branch-commits


Re: [llvm-branch-commits] [cfe-branch] r214823 - Merging r214801:

2014-08-26 Thread Bill Wendling
Okay. Thanks for this. I didn’t realize that these were old emails. Sorry for 
freaking out.

-bw

On Aug 26, 2014, at 4:36 PM, Bill Schmidt wschm...@linux.vnet.ibm.com wrote:

 Hi Bill,
 
 I forgot to CC you when I just responded on-list, but it might sit in a
 moderator queue like all these others did, so here is what I wrote:
 
Hi Bill,
 
These were committed back on August 4th.  I followed your
instructions to use the merge tool, but I didn't have
write-authority to the branch-commits list so all the
notifications sat in a queue waiting for verification from a
moderator.  I have to assume that this finally happened...
 
So anyway, nothing untoward here.  These changes were from
several weeks ago.
 
 Thanks,
 Bill
 
 On Tue, 2014-08-26 at 15:31 -0700, Bill Wendling wrote:
 Um…What the hell is this? It’s far too late to be applying things to the 
 branch, especially without my approval
 
 -bw
 
 On Aug 4, 2014, at 4:48 PM, Bill Schmidt wschm...@linux.vnet.ibm.com wrote:
 
 Author: wschmidt
 Date: Mon Aug  4 18:48:10 2014
 New Revision: 214823
 
 URL: http://llvm.org/viewvc/llvm-project?rev=214823view=rev
 Log:
 Merging r214801:
 
 r214801 | wschmidt | 2014-08-04 18:21:26 -0500 (Mon, 04 Aug 2014) | 19 lines
 
 [PPC64LE] Fix wrong IR for vec_sld and vec_vsldoi
 
 My original LE implementation of the vsldoi instruction, with its
 altivec.h interfaces vec_sld and vec_vsldoi, produces incorrect
 shufflevector operations in the LLVM IR.  Correct code is generated
 because the back end handles the incorrect shufflevector in a
 consistent manner.
 
 This patch and a companion patch for LLVM correct this problem by
 removing the fixup from altivec.h and the corresponding fixup from the
 PowerPC back end.  Several test cases are also modified to reflect the
 now-correct LLVM IR.
 
 The vec_sums and vec_vsumsws interfaces in altivec.h are also fixed,
 because they used vec_perm calls intended to be recognized as vsldoi
 instructions.  These vec_perm calls are now replaced with code that
 more clearly shows the intent of the transformation.
 
 
 
 
 Modified:
   cfe/branches/release_35/lib/Headers/altivec.h
   cfe/branches/release_35/test/CodeGen/builtins-ppc-altivec.c
 
 Modified: cfe/branches/release_35/lib/Headers/altivec.h
 URL: 
 http://llvm.org/viewvc/llvm-project/cfe/branches/release_35/lib/Headers/altivec.h?rev=214823r1=214822r2=214823view=diff
 ==
 --- cfe/branches/release_35/lib/Headers/altivec.h (original)
 +++ cfe/branches/release_35/lib/Headers/altivec.h Mon Aug  4 18:48:10 2014
 @@ -5224,113 +5224,65 @@ vec_vslw(vector unsigned int __a, vector
 static vector signed char __ATTRS_o_ai
 vec_sld(vector signed char __a, vector signed char __b, unsigned char __c)
 {
 -#ifdef __LITTLE_ENDIAN__
 -  return vec_perm(__a, __b, (vector unsigned char)
 -(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
 - __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
 -#else
  return vec_perm(__a, __b, (vector unsigned char)
(__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
 -#endif
 }
 
 static vector unsigned char __ATTRS_o_ai
 vec_sld(vector unsigned char __a, vector unsigned char __b, unsigned char 
 __c)
 {
 -#ifdef __LITTLE_ENDIAN__
 -  return vec_perm(__a, __b, (vector unsigned char)
 -(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
 - __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
 -#else
  return vec_perm(__a, __b, (vector unsigned char)
(__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
 -#endif
 }
 
 static vector short __ATTRS_o_ai
 vec_sld(vector short __a, vector short __b, unsigned char __c)
 {
 -#ifdef __LITTLE_ENDIAN__
 -  return vec_perm(__a, __b, (vector unsigned char)
 -(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
 - __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
 -#else
  return vec_perm(__a, __b, (vector unsigned char)
(__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
 __c+8, __c+9, __c+10, __c+11, __c+12, __c+13, __c+14, __c+15));
 -#endif
 }
 
 static vector unsigned short __ATTRS_o_ai
 vec_sld(vector unsigned short __a, vector unsigned short __b, unsigned char 
 __c)
 {
 -#ifdef __LITTLE_ENDIAN__
 -  return vec_perm(__a, __b, (vector unsigned char)
 -(__c,   __c-1, __c-2, __c-3, __c-4, __c-5, __c-6, __c-7,
 - __c-8, __c-9, __c-10, __c-11, __c-12, __c-13, __c-14, __c-15));
 -#else
  return vec_perm(__a, __b, (vector unsigned char)
(__c,   __c+1, __c+2,  __c+3,  __c+4,  __c+5,  __c+6,  __c+7,
 __c+8, __c+9, __c+10, __c+11,