Re: [PATCH] D29944: libclang: Print namespaces for typedefs and type aliases

2017-02-14 Thread Michael via cfe-commits

As an explanation for this patch my original mail to cfe-dev:

I'm using libclang to parse header files and generate code from them. I 
found that clang_getTypeSpelling() usually includes the namespace(s) a 
type was declared in. However with the exception being typedefs (and 
same for "using A = B"). Not sure if this is a bug or intended behavior, 
but it seems at least inconsistent. I also couldn't really find a good 
workaround for this. I'd have to manually figure out all typedefs (not 
just pure typedefs, they could also be nested template arguments or 
whatever) and then their originating namespaces. This is a bit 
cumbersome and not really straight forward. Getting the canonical type 
is also not really a solution as I would like to keep the typedefs.


Minimal example:

namespace foo {
class Bar {
};
typedef Bar BarDef;
}

clang_getTypeSpelling on "Bar" (kind "Record") gives: "foo::Bar"
clang_getTypeSpelling on "BarDef" (kind "Typedef") gives: "BarDef" (<== 
missing "foo::")


Thanks

Michael

On 02/14/2017 05:11 PM, Michael via Phabricator wrote:

redm123 created this revision.

Printing typedefs or type aliases using clang_getTypeSpelling() is missing the 
namespace they are defined in. This is in contrast to other types that always 
yield the full typename including namespaces.


https://reviews.llvm.org/D29944

Files:
  lib/AST/TypePrinter.cpp
  test/CXX/basic/basic.lookup/basic.lookup.qual/class.qual/p2.cpp
  test/CXX/drs/dr2xx.cpp
  test/CXX/drs/dr5xx.cpp
  test/Index/annotate-nested-name-specifier.cpp
  test/Index/file-refs.cpp
  test/Index/print-type.cpp
  test/Index/recursive-cxx-member-calls.cpp
  test/Layout/ms-x86-basic-layout.cpp
  test/Misc/diag-template-diffing.cpp
  test/SemaCXX/attr-noreturn.cpp
  test/SemaCXX/calling-conv-compat.cpp
  test/SemaCXX/coroutines.cpp
  test/SemaCXX/cxx0x-initializer-aggregates.cpp
  test/SemaCXX/cxx1y-contextual-conversion-tweaks.cpp
  test/SemaCXX/enum-scoped.cpp
  test/SemaCXX/nested-name-spec.cpp
  test/SemaCXX/pseudo-destructors.cpp
  test/SemaObjCXX/arc-templates.mm
  test/SemaTemplate/member-access-ambig.cpp
  test/SemaTemplate/typename-specifier.cpp



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


RE: r283716 - [x86][inline-asm][clang] accept 'v' constraint

2016-10-10 Thread Zuckerman, Michael via cfe-commits
Thanks ,
We will check it.

From: Daniel Jasper [mailto:djas...@google.com]
Sent: Monday, October 10, 2016 14:50
To: Ismail Donmez 
Cc: Zuckerman, Michael ; cfe-commits 

Subject: Re: r283716 - [x86][inline-asm][clang] accept 'v' constraint

I have reverted this in r283743 for now.

On Mon, Oct 10, 2016 at 1:43 PM, Ismail Donmez via cfe-commits 
mailto:cfe-commits@lists.llvm.org>> wrote:
Hi,

On Mon, Oct 10, 2016 at 8:45 AM, Michael Zuckerman via cfe-commits
mailto:cfe-commits@lists.llvm.org>> wrote:
> Author: mzuckerm
> Date: Mon Oct 10 00:45:54 2016
> New Revision: 283716
>
> URL: http://llvm.org/viewvc/llvm-project?rev=283716&view=rev
> Log:
> [x86][inline-asm][clang] accept 'v' constraint
>
> Commit in the name of: Coby Tayree
>
> 1.'v' constraint for (x86) non-avx arch imitates the already implemented 'x' 
> constraint, i.e. allows XMM{0-15} & YMM{0-15} depending on the apparent arch 
> & mode (32/64).
> 2.for the avx512 arch it allows [X,Y,Z]MM{0-31} (mode dependent)
>
> This patch applies the needed changes to clang
>  LLVM patch: https://reviews.llvm.org/D25005
>
> Differential Revision: D25004

This fails on Linux x86-64:

 --
Exit Code: 1

Command Output (stderr):
--
/home/abuild/rpmbuild/BUILD/llvm/tools/clang/test/CodeGen/x86-inline-asm-v-constraint.c:10:9:
error: expected string not found in input
// SSE: call <4 x float> asm "vmovhlps $1, $2, $0",
"=v,v,v,~{dirflag},~{fpsr},~{flags}"(i64 %0, <4 x float> %1)
^
:1:1: note: scanning from here
 ; ModuleID = 
'/home/abuild/rpmbuild/BUILD/llvm/tools/clang/test/CodeGen/x86-inline-asm-v-constraint.c'
 ^
:14:7: note: possible intended match here
%3 = call <4 x float> asm "vmovhlps $1, $2, $0",
"=v,v,v,~{dirflag},~{fpsr},~{flags}"(i64 %1, <4 x float> %2) #1,
!srcloc !1
  ^

--
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

-
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


RE: r269680 - [Clang][AVX512] completing missing intrinsics for [vpabs] instruction set

2016-05-17 Thread Zuckerman, Michael via cfe-commits
Hi ,
Yes, I saw the thread.
We have an internal discussion on this subject.

Regards,
Michael Zuckerman
From: tha...@google.com [mailto:tha...@google.com] On Behalf Of Nico Weber
Sent: Monday, May 16, 2016 22:06
To: Zuckerman, Michael 
Cc: cfe-commits 
Subject: Re: r269680 - [Clang][AVX512] completing missing intrinsics for 
[vpabs] instruction set

Hi Michael,

have you see then trhead "The intrinsics headers (especially avx512) are too 
big. What to do about it?"? Can you maybe comment on it?

Thanks,
Nico

On Mon, May 16, 2016 at 2:57 PM, Michael Zuckerman via cfe-commits 
mailto:cfe-commits@lists.llvm.org>> wrote:
Author: mzuckerm
Date: Mon May 16 13:57:24 2016
New Revision: 269680

URL: http://llvm.org/viewvc/llvm-project?rev=269680&view=rev
Log:
[Clang][AVX512] completing missing intrinsics for [vpabs] instruction set

Differential Revision: http://reviews.llvm.org/D20069

Modified:
cfe/trunk/lib/Headers/avx512fintrin.h
cfe/trunk/test/CodeGen/avx512f-builtins.c

Modified: cfe/trunk/lib/Headers/avx512fintrin.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintrin.h?rev=269680&r1=269679&r2=269680&view=diff
==
--- cfe/trunk/lib/Headers/avx512fintrin.h (original)
+++ cfe/trunk/lib/Headers/avx512fintrin.h Mon May 16 13:57:24 2016
@@ -1631,6 +1631,23 @@ _mm512_abs_epi64(__m512i __A)
  (__mmask8) -1);
 }

+static __inline__ __m512i __DEFAULT_FN_ATTRS
+_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
+{
+  return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
+  (__v8di) __W,
+  (__mmask8) __U);
+}
+
+static __inline__ __m512i __DEFAULT_FN_ATTRS
+_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
+{
+  return (__m512i) __builtin_ia32_pabsq512_mask ((__v8di) __A,
+  (__v8di)
+  _mm512_setzero_si512 (),
+  (__mmask8) __U);
+}
+
 static __inline __m512i __DEFAULT_FN_ATTRS
 _mm512_abs_epi32(__m512i __A)
 {
@@ -1640,6 +1657,23 @@ _mm512_abs_epi32(__m512i __A)
  (__mmask16) -1);
 }

+static __inline__ __m512i __DEFAULT_FN_ATTRS
+_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
+{
+  return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
+  (__v16si) __W,
+  (__mmask16) __U);
+}
+
+static __inline__ __m512i __DEFAULT_FN_ATTRS
+_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
+{
+  return (__m512i) __builtin_ia32_pabsd512_mask ((__v16si) __A,
+  (__v16si)
+  _mm512_setzero_si512 (),
+  (__mmask16) __U);
+}
+
 static __inline__ __m128 __DEFAULT_FN_ATTRS
 _mm_mask_add_ss(__m128 __W, __mmask8 __U,__m128 __A, __m128 __B) {
   return (__m128) __builtin_ia32_addss_round_mask ((__v4sf) __A,

Modified: cfe/trunk/test/CodeGen/avx512f-builtins.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-builtins.c?rev=269680&r1=269679&r2=269680&view=diff
==
--- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)
+++ cfe/trunk/test/CodeGen/avx512f-builtins.c Mon May 16 13:57:24 2016
@@ -6574,3 +6574,30 @@ __m512 test_mm512_set_ps (float __A, flo
   __I, __J, __K, __L, __M, __N, __O, __P);
 }

+__m512i test_mm512_mask_abs_epi64 (__m512i __W, __mmask8 __U, __m512i __A)
+{
+  // CHECK-LABEL: @test_mm512_mask_abs_epi64
+  // CHECK: @llvm.x86.avx512.mask.pabs.q.512
+  return _mm512_mask_abs_epi64 (__W,__U,__A);
+}
+
+__m512i test_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
+{
+  // CHECK-LABEL: @test_mm512_maskz_abs_epi64
+  // CHECK: @llvm.x86.avx512.mask.pabs.q.512
+  return _mm512_maskz_abs_epi64 (__U,__A);
+}
+
+__m512i test_mm512_mask_abs_epi32 (__m512i __W, __mmask16 __U, __m512i __A)
+{
+  // CHECK-LABEL: @test_mm512_mask_abs_epi32
+  // CHECK: @llvm.x86.avx512.mask.pabs.d.512
+  return _mm512_mask_abs_epi32 (__W,__U,__A);
+}
+
+__m512i test_mm512_maskz_abs_epi32 (__mmask16 __U, __m512i __A)
+{
+  // CHECK-LABEL: @test_mm512_maskz_abs_epi32
+  // CHECK: @llvm.x86.avx512.mask.pabs.d.512
+  return _mm512_maskz_abs_epi32 (__U,__A);
+}


___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

-
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


RE: r270047 - [Clang][AVX512][intrinsics] continue completing missing set intrinsics

2016-05-20 Thread Zuckerman, Michael via cfe-commits
No problem, 
I will look at it.

Regards 
Michael Zuckerman 

-Original Message-
From: steve...@apple.com [mailto:steve...@apple.com] 
Sent: Thursday, May 19, 2016 23:27
To: Zuckerman, Michael 
Cc: cfe-commits@lists.llvm.org
Subject: Re: r270047 - [Clang][AVX512][intrinsics] continue completing missing 
set intrinsics

Hi Michael

This commit seems break darwin LTO bootstrap bot. 
http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/7916/
Also breaks the Asan Ubsan bot:
http://lab.llvm.org:8080/green/job/clang-stage2-cmake-RgSan_check/1742/

Can you talk a look? I don't why the failure doesn't show up in other 
configuration. Let me know if you need any help.

Thanks

Steven


> On May 19, 2016, at 5:07 AM, Michael Zuckerman via cfe-commits 
>  wrote:
> 
> Author: mzuckerm
> Date: Thu May 19 07:07:49 2016
> New Revision: 270047
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=270047&view=rev
> Log:
> [Clang][AVX512][intrinsics] continue completing missing set intrinsics
> 
> Differential Revision: http://reviews.llvm.org/D20160
> 
> 
> Modified:
>cfe/trunk/lib/Headers/avx512fintrin.h
>cfe/trunk/test/CodeGen/avx512f-builtins.c
> 
> Modified: cfe/trunk/lib/Headers/avx512fintrin.h
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avx512fintri
> n.h?rev=270047&r1=270046&r2=270047&view=diff
> ==
> 
> --- cfe/trunk/lib/Headers/avx512fintrin.h (original)
> +++ cfe/trunk/lib/Headers/avx512fintrin.h Thu May 19 07:07:49 2016
> @@ -8983,6 +8983,21 @@ _mm512_mask_set1_epi64 (__m512i __O, __m
>  __M);
> }
> 
> +static __inline __m512i __DEFAULT_FN_ATTRS
> +_mm512_set_epi32 (int __A, int __B, int __C, int __D,
> + int __E, int __F, int __G, int __H,
> + int __I, int __J, int __K, int __L,
> + int __M, int __N, int __O, int __P) {
> +  return __extension__ (__m512i)(__v16si)
> +  { __P, __O, __N, __M, __L, __K, __J, __I,
> +__H, __G, __F, __E, __D, __C, __B, __A }; }
> +
> +#define _mm512_setr_epi32(e0,e1,e2,e3,e4,e5,e6,e7,   \
> +   e8,e9,e10,e11,e12,e13,e14,e15)  \
> +  
> +_mm512_set_epi32(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e
> +0)
> +  
> static __inline__ __m512i __DEFAULT_FN_ATTRS
> _mm512_set_epi64 (long long __A, long long __B, long long __C,
>  long long __D, long long __E, long long __F, @@ -8992,6 +9007,9 
> @@ _mm512_set_epi64 (long long __A, long lo
>   { __H, __G, __F, __E, __D, __C, __B, __A }; }
> 
> +#define _mm512_setr_epi64(e0,e1,e2,e3,e4,e5,e6,e7)   \
> +  _mm512_set_epi64(e7,e6,e5,e4,e3,e2,e1,e0)
> +
> static __inline__ __m512d __DEFAULT_FN_ATTRS _mm512_set_pd (double 
> __A, double __B, double __C, double __D,
> double __E, double __F, double __G, double __H) @@ -9000,6 
> +9018,9 @@ _mm512_set_pd (double __A, double __B, d
>   { __H, __G, __F, __E, __D, __C, __B, __A }; }
> 
> +#define _mm512_setr_pd(e0,e1,e2,e3,e4,e5,e6,e7)  \
> +  _mm512_set_pd(e7,e6,e5,e4,e3,e2,e1,e0)
> +
> static __inline__ __m512 __DEFAULT_FN_ATTRS _mm512_set_ps (float __A, 
> float __B, float __C, float __D,
> float __E, float __F, float __G, float __H, @@ -9011,6 +9032,9 
> @@ _mm512_set_ps (float __A, float __B, flo
> __H, __G, __F, __E, __D, __C, __B, __A }; }
> 
> +#define 
> +_mm512_setr_ps(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12,e13,e14,e15) 
> +\
> +  
> +_mm512_set_ps(e15,e14,e13,e12,e11,e10,e9,e8,e7,e6,e5,e4,e3,e2,e1,e0)
> +
> #undef __DEFAULT_FN_ATTRS
> 
> #endif // __AVX512FINTRIN_H
> 
> Modified: cfe/trunk/test/CodeGen/avx512f-builtins.c
> URL: 
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/avx512f-bui
> ltins.c?rev=270047&r1=270046&r2=270047&view=diff
> ==
> 
> --- cfe/trunk/test/CodeGen/avx512f-builtins.c (original)
> +++ cfe/trunk/test/CodeGen/avx512f-builtins.c Thu May 19 07:07:49 2016
> @@ -6521,6 +6521,74 @@ __m512i test_mm512_mask_set1_epi32 (__m5
>   return _mm512_mask_set1_epi32 ( __O, __M, __A); }
> 
> +__m512i test_mm512_set_epi32 (int __A, int __B, int __C, int __D,
> +   int __E, int __F, int __G, int __H,
> +   int __I, int __J, int __K, int __L,
> +   int __M, int __N, int __O, int __P) {
> + //CHECK-LABLE: @test_mm512_set_epi32
> + //CHECK: insertelement{{.*}}i32 0
> +//CHECK: insertelement{{.*}}i32 1
> +//CHECK: insertelement{{.*}}i32 2
> +//CHECK: insertelement{{.*}}i32 3
> +//CHECK: insertelement{{.*}}i32 4
> +//CHECK: insertelement{{.*}}i32 5
> +//CHECK: insertelement{{.*}}i32 6
> +//CHECK: insertelement{{.*}}i32 7
> +//CHECK: insertelement{{.*}}i32 8
> +//CHECK: insertelement{{.*}}i32 9
> +//CHECK: insertelement{{.*}}i32 10
> +//CHECK: insertelement{{.*}}i32 11
> +//CHECK: insertelement{{.*}}i32 12
> +//CHECK: insertelement{{.*}}i32 13
> +//CHECK: insertelement{{.*}}i32

RE: r256854 - [OpenMP] Allow file ID to be signed in the offloading metadata.

2016-01-05 Thread Liao, Michael via cfe-commits
Hi Samual

The change in CL#256842 has undefined behavior according to C++. Attached patch 
will avoid side-effect code during argument evaluation of a function call. That 
solves the problem for me on Linux with GCC 4.9.

Thanks
- Michael

From: cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] On Behalf Of 
Samuel F Antao via cfe-commits
Sent: Tuesday, January 5, 2016 10:57 AM
To: Artem Belevich 
Cc: cfe-commits 
Subject: Re: r256854 - [OpenMP] Allow file ID to be signed in the offloading 
metadata.


Hi Art,

That only fixed one of the problems. The other one I am having some trouble to 
replicate. I am trying a few things and hopefully will get a fix soon.

Sorry for the trouble,
Samuel

[Inactive hide details for Artem Belevich ---01/05/2016 01:54:02 PM---Samuel, 
The tests are still failing:]Artem Belevich ---01/05/2016 01:54:02 PM---Samuel, 
The tests are still failing:

From: Artem Belevich mailto:t...@google.com>>
To: Samuel F Antao/Watson/IBM@IBMUS
Cc: cfe-commits mailto:cfe-commits@lists.llvm.org>>
Date: 01/05/2016 01:54 PM
Subject: Re: r256854 - [OpenMP] Allow file ID to be signed in the offloading 
metadata.





Samuel,

The tests are still failing:
http://lab.llvm.org:8011/builders/clang-bpf-build/builds/5759



On Tue, Jan 5, 2016 at 10:02 AM, Samuel Antao via cfe-commits 
mailto:cfe-commits@lists.llvm.org>> wrote:
Author: sfantao
Date: Tue Jan  5 12:02:24 2016
New Revision: 256854

URL: http://llvm.org/viewvc/llvm-project?rev=256854&view=rev
Log:
[OpenMP] Allow file ID to be signed in the offloading metadata.

This fixes a regression introduced by rL256842.


Modified:
cfe/trunk/test/OpenMP/target_codegen_registration.cpp
cfe/trunk/test/OpenMP/target_codegen_registration_naming.cpp

Modified: cfe/trunk/test/OpenMP/target_codegen_registration.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_codegen_registration.cpp?rev=256854&r1=256853&r2=256854&view=diff
==
--- cfe/trunk/test/OpenMP/target_codegen_registration.cpp (original)
+++ cfe/trunk/test/OpenMP/target_codegen_registration.cpp Tue Jan  5 12:02:24 
2016
@@ -407,7 +407,7 @@ int bar(int a){

 // Check metadata is properly generated:
 // CHECK: !omp_offload.info = !{!{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}}
-// CHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:[0-9]+]], 
!"_ZN2SB3fooEv", i32 160, i32 13, i32 {{[0-9]}}+}
+// CHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:-?[0-9]+]], 
!"_ZN2SB3fooEv", i32 160, i32 13, i32 {{[0-9]}}+}
 // CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SDD2Ev", i32 210, 
i32 13, i32 {{[0-9]}}+}
 // CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SEC2Ev", i32 226, 
i32 13, i32 {{[0-9]}}+}
 // CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SED2Ev", i32 232, 
i32 13, i32 {{[0-9]}}+}
@@ -421,7 +421,7 @@ int bar(int a){
 // CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SCC2Ev", i32 185, 
i32 13, i32 {{[0-9]}}+}

 // TCHECK: !omp_offload.info = !{!{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}}
-// TCHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:[0-9]+]], 
!"_ZN2SB3fooEv", i32 160, i32 13, i32 {{[0-9]}}+}
+// TCHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:-?[0-9]+]], 
!"_ZN2SB3fooEv", i32 160, i32 13, i32 {{[0-9]}}+}
 // TCHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SDD2Ev", i32 210, 
i32 13, i32 {{[0-9]}}+}
 // TCHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SEC2Ev", i32 226, 
i32 13, i32 {{[0-9]}}+}
 // TCHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SED2Ev", i32 232, 
i32 13, i32 {{[0-9]}}+}

Modified: cfe/trunk/test/OpenMP/target_codegen_registration_naming.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_codegen_registration_naming.cpp?rev=256854&r1=256853&r2=256854&view=diff
==
--- cfe/trunk/test/OpenMP/target_codegen_registration_naming.cpp (original)
+++ cfe/trunk/test/OpenMP/target_codegen_registration_naming.cpp Tue Jan  5 
12:02:24 2016
@@ -57,10 +57,10 @@ int nested(int a){

 // Check metadata is properly generated:
 // CHECK: !omp_offload.info = !{!{{[0-9]+}}, 
!{{[0-9]+}}}
-// CHECK-DAG: = !{i32 0, i32 {{[0-9]+}}, i32 {{[0-9]+}}, !"[[NNAME]]", i32 
[[T1L]], i32 [[T1C]], i32 {{[0-9]+}}}
-// CHECK-DAG: = !{i32 0, i32 {{[0-9]+}}, i32 {{[0-9]+}}, !"[[NNAME]]", i32 
[[T2L]], i32 [[T2C]], i32 {{[0-9]+}}}
+// CHECK-DAG: = !{i32 0, i32 {{[0-9]+}}, i32 {{-?[0-9]+}}, !"[[NNAME]]", i32 
[[T1L]], i32 [[T1C]], i32 {{[0-9]+}}}
+// CHECK-DAG: = !{i32 0, i32 

RE: r256854 - [OpenMP] Allow file ID to be signed in the offloading metadata.

2016-01-05 Thread Liao, Michael via cfe-commits
Hi Samuel

The issue is not related to capture feature but the order of evaluation which 
is not specified for arguments in a function call in C/C++. With the side 
effect in each argument evaluation, it causes the trouble.

Thanks
- Michael

From: Samuel F Antao [mailto:sfan...@us.ibm.com]
Sent: Tuesday, January 5, 2016 4:25 PM
To: Liao, Michael 
Cc: cfe-commits ; Artem Belevich 
Subject: RE: r256854 - [OpenMP] Allow file ID to be signed in the offloading 
metadata.


Hi Michael,

Thanks for the patch! I am not sure I understand why the behavior is 
unspecified if Idx is captured by reference, but that is good to know that it 
fixes the problem. I reverted the patch in the meantime given that I am still 
trying to replicate a problem I get from the ARM bots, but I will incorporate 
your fix when I am ready to reapply the patch.

Thanks again!
Samuel

[Inactive hide details for "Liao, Michael" ---01/05/2016 05:17:13 PM---Hi 
Samual The change in CL#256842 has undefined behavior]"Liao, Michael" 
---01/05/2016 05:17:13 PM---Hi Samual The change in CL#256842 has undefined 
behavior according to C++. Attached patch will avoid

From: "Liao, Michael" mailto:michael.l...@intel.com>>
To: Samuel F Antao/Watson/IBM@IBMUS, Artem Belevich 
mailto:t...@google.com>>
Cc: cfe-commits mailto:cfe-commits@lists.llvm.org>>
Date: 01/05/2016 05:17 PM
Subject: RE: r256854 - [OpenMP] Allow file ID to be signed in the offloading 
metadata.





Hi Samual

The change in CL#256842 has undefined behavior according to C++. Attached patch 
will avoid side-effect code during argument evaluation of a function call. That 
solves the problem for me on Linux with GCC 4.9.

Thanks
- Michael

From: cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] On Behalf Of 
Samuel F Antao via cfe-commits
Sent: Tuesday, January 5, 2016 10:57 AM
To: Artem Belevich mailto:t...@google.com>>
Cc: cfe-commits mailto:cfe-commits@lists.llvm.org>>
Subject: Re: r256854 - [OpenMP] Allow file ID to be signed in the offloading 
metadata.

Hi Art,

That only fixed one of the problems. The other one I am having some trouble to 
replicate. I am trying a few things and hopefully will get a fix soon.

Sorry for the trouble,
Samuel

[Inactive hide details for Artem Belevich ---01/05/2016 01:54:02 PM---Samuel, 
The tests are still failing:]Artem Belevich ---01/05/2016 01:54:02 PM---Samuel, 
The tests are still failing:

From: Artem Belevich mailto:t...@google.com>>
To: Samuel F Antao/Watson/IBM@IBMUS
Cc: cfe-commits mailto:cfe-commits@lists.llvm.org>>
Date: 01/05/2016 01:54 PM
Subject: Re: r256854 - [OpenMP] Allow file ID to be signed in the offloading 
metadata.






Samuel,

The tests are still failing:
http://lab.llvm.org:8011/builders/clang-bpf-build/builds/5759



On Tue, Jan 5, 2016 at 10:02 AM, Samuel Antao via cfe-commits 
mailto:cfe-commits@lists.llvm.org>> wrote:
Author: sfantao
Date: Tue Jan 5 12:02:24 2016
New Revision: 256854

URL: http://llvm.org/viewvc/llvm-project?rev=256854&view=rev
Log:
[OpenMP] Allow file ID to be signed in the offloading metadata.

This fixes a regression introduced by rL256842.


Modified:
cfe/trunk/test/OpenMP/target_codegen_registration.cpp
cfe/trunk/test/OpenMP/target_codegen_registration_naming.cpp

Modified: cfe/trunk/test/OpenMP/target_codegen_registration.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/OpenMP/target_codegen_registration.cpp?rev=256854&r1=256853&r2=256854&view=diff
==
--- cfe/trunk/test/OpenMP/target_codegen_registration.cpp (original)
+++ cfe/trunk/test/OpenMP/target_codegen_registration.cpp Tue Jan 5 12:02:24 
2016
@@ -407,7 +407,7 @@ int bar(int a){

// Check metadata is properly generated:
// CHECK: !omp_offload.info = !{!{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}}
-// CHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:[0-9]+]], 
!"_ZN2SB3fooEv", i32 160, i32 13, i32 {{[0-9]}}+}
+// CHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:-?[0-9]+]], 
!"_ZN2SB3fooEv", i32 160, i32 13, i32 {{[0-9]}}+}
// CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SDD2Ev", i32 210, 
i32 13, i32 {{[0-9]}}+}
// CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SEC2Ev", i32 226, 
i32 13, i32 {{[0-9]}}+}
// CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SED2Ev", i32 232, 
i32 13, i32 {{[0-9]}}+}
@@ -421,7 +421,7 @@ int bar(int a){
// CHECK-DAG = !{i32 0, i32 [[DEVID]], i32 [[FILEID]] !"_ZN2SCC2Ev", i32 185, 
i32 13, i32 {{[0-9]}}+}

// TCHECK: !omp_offload.info = !{!{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, 
!{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}, !{{[0-9]+}}}
-// TCHECK-DAG = !{i32 0, i32 [[DEVID:[0-9]+]], i32 [[FILEID:[