[llvm] r262112 - [instrprof] Use __{start, stop}_SECNAME on PS4 too.

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 26 23:48:31 PST 2016


Maggie, Phillip,

This should Just Work after undoing any internal #ifdef's forcing the
InstrProfilingPlatformOther.c code path, but let me know if you guys run
into any issues.

-- Sean Silva

On Fri, Feb 26, 2016 at 10:01 PM, Sean Silva via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: silvas
> Date: Sat Feb 27 00:01:26 2016
> New Revision: 262112
>
> URL: http://llvm.org/viewvc/llvm-project?rev=262112&view=rev
> Log:
> [instrprof] Use __{start,stop}_SECNAME on PS4 too.
>
> Summary:
> The PS4 linker seems to handle this fine.
>
> Hi David, it seems that indeed most ELF linkers support
> __{start,stop}_SECNAME, as our proprietary linker does as well.
>
> This follows the pattern of r250679 w.r.t. the testing.
>
> Maggie, Phillip, Paul: I've tested this with the PS4 SDK 3.5 toolchain
> prerelease and it seems to work fine.
>
> Reviewers: davidxl
>
> Subscribers: probinson, phillip.power, MaggieYi
>
> Differential Revision: http://reviews.llvm.org/D17672
>
> Modified:
>     llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp
>     llvm/trunk/test/Instrumentation/InstrProfiling/platform.ll
>
> Modified: llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp?rev=262112&r1=262111&r2=262112&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp (original)
> +++ llvm/trunk/lib/Transforms/Instrumentation/InstrProfiling.cpp Sat Feb
> 27 00:01:26 2016
> @@ -406,7 +406,8 @@ void InstrProfiling::emitRegistration()
>
>    // Use linker script magic to get data/cnts/name start/end.
>    if (Triple(M->getTargetTriple()).isOSLinux() ||
> -      Triple(M->getTargetTriple()).isOSFreeBSD())
> +      Triple(M->getTargetTriple()).isOSFreeBSD() ||
> +      Triple(M->getTargetTriple()).isPS4CPU())
>      return;
>
>    // Construct the function.
>
> Modified: llvm/trunk/test/Instrumentation/InstrProfiling/platform.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Instrumentation/InstrProfiling/platform.ll?rev=262112&r1=262111&r2=262112&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/Instrumentation/InstrProfiling/platform.ll (original)
> +++ llvm/trunk/test/Instrumentation/InstrProfiling/platform.ll Sat Feb 27
> 00:01:26 2016
> @@ -3,6 +3,7 @@
>  ; RUN: opt < %s -mtriple=x86_64-apple-macosx10.10.0 -instrprof -S |
> FileCheck %s -check-prefix=MACHO
>  ; RUN: opt < %s -mtriple=x86_64-unknown-linux -instrprof -S | FileCheck
> %s -check-prefix=LINUX
>  ; RUN: opt < %s -mtriple=x86_64-unknown-freebsd -instrprof -S | FileCheck
> %s -check-prefix=FREEBSD
> +; RUN: opt < %s -mtriple=x86_64-scei-ps4 -instrprof -S | FileCheck %s
> -check-prefix=PS4
>  ; RUN: opt < %s -mtriple=x86_64-pc-solaris -instrprof -S | FileCheck %s
> -check-prefix=SOLARIS
>
>  @__profn_foo = hidden constant [3 x i8] c"foo"
> @@ -15,6 +16,7 @@
>  ; MACHO: @__profd_foo = hidden {{.*}}, section "__DATA,__llvm_prf_data",
> align 8
>  ; LINUX: @__profd_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
>  ; FREEBSD: @__profd_foo = hidden {{.*}}, section "__llvm_prf_data", align
> 8
> +; PS4: @__profd_foo = hidden {{.*}}, section "__llvm_prf_data", align 8
>  ; SOLARIS: @__profd_foo = hidden {{.*}}, section "__llvm_prf_data", align
> 8
>
>  ; ELF: @__llvm_prf_nm = private constant [{{.*}} x i8] c"{{.*}}", section
> "{{.*}}__llvm_prf_names"
> @@ -32,9 +34,11 @@ declare void @llvm.instrprof.increment(i
>  ; MACHO-NOT: define internal void @__llvm_profile_register_functions
>  ; LINUX-NOT: define internal void @__llvm_profile_register_functions
>  ; FREEBSD-NOT: define internal void @__llvm_profile_register_functions
> +; PS4-NOT: define internal void @__llvm_profile_register_functions
>  ; SOLARIS: define internal void @__llvm_profile_register_functions
>
>  ; MACHO-NOT: define internal void @__llvm_profile_init
>  ; LINUX-NOT: define internal void @__llvm_profile_init
>  ; FREEBSD-NOT: define internal void @__llvm_profile_init
> +; PS4-NOT: define internal void @__llvm_profile_init
>  ; SOLARIS: define internal void @__llvm_profile_init
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160226/87fab1b4/attachment.html>


More information about the llvm-commits mailing list