[PATCH] D56286: [OPENMP] Deal with additional store inserted by Clang under -fno-PIC for PowerPC.

Stefan Pintilie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 1 13:19:30 PST 2019


This revision was automatically updated to reflect the committed changes.
Closed by commit rL355229: [OPENMP] Deal with additional store inserted by Clang under -fno-PIC for… (authored by stefanp, committed by ).
Herald added a project: LLVM.

Changed prior to commit:
  https://reviews.llvm.org/D56286?vs=180133&id=188964#toc

Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D56286/new/

https://reviews.llvm.org/D56286

Files:
  openmp/trunk/runtime/test/lit.cfg
  openmp/trunk/runtime/test/lit.site.cfg.in
  openmp/trunk/runtime/test/ompt/callback.h
  openmp/trunk/runtime/test/ompt/misc/control_tool.c
  openmp/trunk/runtime/test/ompt/synchronization/taskwait.c


Index: openmp/trunk/runtime/test/lit.cfg
===================================================================
--- openmp/trunk/runtime/test/lit.cfg
+++ openmp/trunk/runtime/test/lit.cfg
@@ -55,6 +55,7 @@
     libs += " -latomic"
 
 # Allow REQUIRES / UNSUPPORTED / XFAIL to work
+config.target_triple = [ ]
 for feature in config.test_compiler_features:
     config.available_features.add(feature)
 
Index: openmp/trunk/runtime/test/ompt/callback.h
===================================================================
--- openmp/trunk/runtime/test/ompt/callback.h
+++ openmp/trunk/runtime/test/ompt/callback.h
@@ -154,11 +154,12 @@
          ompt_get_thread_data()->value, ((char *)addr) - 1, ((char *)addr) - 4)
 #elif KMP_ARCH_PPC64
 // On Power the NOP instruction is 4 bytes long. In addition, the compiler
-// inserts an LD instruction which accounts for another 4 bytes. In contrast to
-// X86 this instruction is always there, even for void runtime functions.
+// inserts a second NOP instruction (another 4 bytes). For non-void runtime
+// functions Clang inserts a STW instruction (but only if compiling under
+// -fno-PIC which will be the default with Clang 8.0, another 4 bytes).
 #define print_possible_return_addresses(addr) \
-  printf("%" PRIu64 ": current_address=%p\n", ompt_get_thread_data()->value, \
-         ((char *)addr) - 8)
+  printf("%" PRIu64 ": current_address=%p or %p\n", ompt_get_thread_data()->value, \
+         ((char *)addr) - 8, ((char *)addr) - 12)
 #elif KMP_ARCH_AARCH64
 // On AArch64 the NOP instruction is 4 bytes long, can be followed by inserted
 // store instruction (another 4 bytes long).
Index: openmp/trunk/runtime/test/ompt/synchronization/taskwait.c
===================================================================
--- openmp/trunk/runtime/test/ompt/synchronization/taskwait.c
+++ openmp/trunk/runtime/test/ompt/synchronization/taskwait.c
@@ -1,7 +1,6 @@
 // RUN: %libomp-compile-and-run | %sort-threads | FileCheck %s
 // REQUIRES: ompt
 // UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7
-// XFAIL: powerpc64le, ppc64le
 #include "callback.h"
 #include <omp.h>
 
Index: openmp/trunk/runtime/test/ompt/misc/control_tool.c
===================================================================
--- openmp/trunk/runtime/test/ompt/misc/control_tool.c
+++ openmp/trunk/runtime/test/ompt/misc/control_tool.c
@@ -1,7 +1,6 @@
 // RUN: %libomp-compile-and-run | FileCheck %s
 // REQUIRES: ompt
 // UNSUPPORTED: gcc-4, gcc-5, gcc-6, gcc-7
-// XFAIL: powerpc64le, ppc64le
 #define TEST_NEED_PRINT_FRAME_FROM_OUTLINED_FN
 #include "callback.h"
 #include <omp.h>
Index: openmp/trunk/runtime/test/lit.site.cfg.in
===================================================================
--- openmp/trunk/runtime/test/lit.site.cfg.in
+++ openmp/trunk/runtime/test/lit.site.cfg.in
@@ -1,6 +1,5 @@
 @AUTO_GEN_COMMENT@
 
-config.target_triple = "@TARGET_TRIPLE@"
 config.test_c_compiler = "@OPENMP_TEST_C_COMPILER@"
 config.test_cxx_compiler = "@OPENMP_TEST_CXX_COMPILER@"
 config.test_compiler_features = @OPENMP_TEST_COMPILER_FEATURES@


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56286.188964.patch
Type: text/x-patch
Size: 3059 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190301/9fda1fd6/attachment.bin>


More information about the llvm-commits mailing list