[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
This revision was automatically updated to reflect the committed changes. Closed by commit rG7f85c560b43b: [Clang][AIX][p]Enable -p Functionality (authored by francii). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6331,7 +6331,9 @@ } } if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { -if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { +if (TC.getTriple().isOSAIX()) { + CmdArgs.push_back("-pg"); +} else if (!TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4179,6 +4179,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4225,7 +4226,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6331,7 +6331,9 @@ } } if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { -if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { +if (TC.getTriple().isOSAIX()) { + CmdArgs.push_back("-pg"); +} else if (!TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 495588. francii added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6331,7 +6331,9 @@ } } if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { -if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { +if (TC.getTriple().isOSAIX()) { + CmdArgs.push_back("-pg"); +} else if (!TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4175,6 +4175,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4221,7 +4222,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6331,7 +6331,9 @@ } } if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { -if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { +if (TC.getTriple().isOSAIX()) { + CmdArgs.push_back("-pg"); +} else if (!TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg))
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 493054. francii added a comment. Update based on review Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6284,7 +6284,9 @@ } } if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { -if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { +if (TC.getTriple().isOSAIX()) { + CmdArgs.push_back("-pg"); +} else if (!TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4138,6 +4138,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4184,7 +4185,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6284,7 +6284,9 @@ } } if (Arg *A = Args.getLastArgNoClaim(options::OPT_p)) { -if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { +if (TC.getTriple().isOSAIX()) { + CmdArgs.push_back("-pg"); +} else if (!TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
daltenty accepted this revision. daltenty added a comment. This revision is now accepted and ready to land. LGTM, with small nit to address before commit Comment at: clang/lib/Driver/ToolChains/Clang.cpp:6287-6292 if (!TC.getTriple().isOSAIX() && !TC.getTriple().isOSOpenBSD()) { D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); nit: we can save our selves a query and clarify by writing this as if-elseif Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii added inline comments. Comment at: clang/lib/Driver/ToolChains/AIX.cpp:274 -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + daltenty wrote: > Maybe I'm a bit confused, I though these options had different handling with > respect to the paths? Otherwise, it's simply an alias. You may be referring to lines 167-175 of this same file: ``` auto getCrt0Basename = [, IsArch32Bit] { // Enable gprofiling when "-pg" is specified. if (Args.hasArg(options::OPT_pg)) return IsArch32Bit ? "gcrt0.o" : "gcrt0_64.o"; // Enable profiling when "-p" is specified. else if (Args.hasArg(options::OPT_p)) return IsArch32Bit ? "mcrt0.o" : "mcrt0_64.o"; else return IsArch32Bit ? "crt0.o" : "crt0_64.o"; }; ``` This is the only time we handle `-p` differently. With both `-p` and `-pg`, we want to link the profiled libraries. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 492189. francii added a comment. Remove cc1 option Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6288,6 +6288,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4138,6 +4138,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4184,7 +4185,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6288,6 +6288,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled"));
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
daltenty added inline comments. Comment at: clang/include/clang/Driver/Options.td:4141 HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">, Flags<[CC1Option]>; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, Why is this a cc1 option if it's not used in CC1? Comment at: clang/lib/Driver/ToolChains/AIX.cpp:274 -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Maybe I'm a bit confused, I though these options had different handling with respect to the paths? Otherwise, it's simply an alias. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 491444. francii added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6288,6 +6288,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4138,6 +4138,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">, Flags<[CC1Option]>; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4184,7 +4185,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6288,6 +6288,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled"));
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 491204. francii added a comment. Rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6288,6 +6288,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4137,6 +4137,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">, Flags<[CC1Option]>; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4183,7 +4184,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6288,6 +6288,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -271,7 +271,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled"));
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 490638. francii added a comment. Specifically check for AIX before pushing pg Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6260,6 +6260,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -252,7 +252,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4136,6 +4136,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">, Flags<[CC1Option]>; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4182,7 +4183,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6260,6 +6260,8 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +if (TC.getTriple().isOSAIX()) + CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -252,7 +252,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled"));
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 490261. francii added a comment. Remove codegen option approach Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Driver/Options.td clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6260,6 +6260,7 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -252,7 +252,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4136,6 +4136,7 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; +def p : Flag<["-"], "p">, HelpText<"Enable mcount instrumentation with prof">, Flags<[CC1Option]>; def pg : Flag<["-"], "pg">, HelpText<"Enable mcount instrumentation">, Flags<[CC1Option]>, MarshallingInfoFlag>; def pipe : Flag<["-", "--"], "pipe">, @@ -4182,7 +4183,6 @@ LangOpts<"POSIXThreads">, DefaultFalse, PosFlag, NegFlag, BothFlags<[CC1Option]>>; -def p : Flag<["-"], "p">; def pie : Flag<["-"], "pie">, Group; def static_pie : Flag<["-"], "static-pie">, Group; def read__only__relocs : Separate<["-"], "read_only_relocs">; Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -6260,6 +6260,7 @@ D.Diag(diag::err_drv_unsupported_opt_for_target) << A->getAsString(Args) << TripleStr; } +CmdArgs.push_back("-pg"); } if (Args.getLastArg(options::OPT_fapple_kext) || Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -252,7 +252,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index:
[PATCH] D137753: [Clang][AIX][p]Enable -p Functionality
francii updated this revision to Diff 487907. francii added a comment. Add supports profiling check Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137753/new/ https://reviews.llvm.org/D137753 Files: clang/include/clang/Basic/CodeGenOptions.def clang/include/clang/Driver/Options.td clang/lib/CodeGen/BackendUtil.cpp clang/lib/CodeGen/CodeGenFunction.cpp clang/lib/Driver/ToolChains/AIX.cpp clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/aix-ld.c Index: clang/test/Driver/aix-ld.c === --- clang/test/Driver/aix-ld.c +++ clang/test/Driver/aix-ld.c @@ -135,6 +135,8 @@ // CHECK-LD32-PROF-NOT: "--no-as-needed" // CHECK-LD32-PROF-NOT: "-lm" // CHECK-LD32-PROF: "-lc" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD32-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc64-ibm-aix7.1.0.0, 64-bit. Enable profiling. // RUN: %clang %s -### 2>&1 \ @@ -162,6 +164,8 @@ // CHECK-LD64-PROF-NOT: "--no-as-needed" // CHECK-LD64-PROF-NOT: "-lm" // CHECK-LD64-PROF: "-lc" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/lib/profiled" +// CHECK-LD64-PROF: "-L[[SYSROOT]]/usr/lib/profiled" // Check powerpc-ibm-aix7.1.0.0, 32-bit. Enable g-profiling. // RUN: %clang %s -### 2>&1 \ Index: clang/lib/Driver/ToolChains/Clang.cpp === --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -430,7 +430,8 @@ static bool useFramePointerForTargetByDefault(const ArgList , const llvm::Triple ) { - if (Args.hasArg(options::OPT_pg) && !Args.hasArg(options::OPT_mfentry)) + if (Args.hasArg(options::OPT_p, options::OPT_pg) && + !Args.hasArg(options::OPT_mfentry)) return true; switch (Triple.getArch()) { @@ -6223,6 +6224,7 @@ Args.AddLastArg(CmdArgs, options::OPT_fms_hotpatch); if (TC.SupportsProfiling()) { +Args.AddLastArg(CmdArgs, options::OPT_p); Args.AddLastArg(CmdArgs, options::OPT_pg); llvm::Triple::ArchType Arch = TC.getArch(); @@ -7338,7 +7340,7 @@ C.getJobs().getJobs().back()->PrintInputFilenames = true; } - if (Arg *A = Args.getLastArg(options::OPT_pg)) + if (Arg *A = Args.getLastArg(options::OPT_p, options::OPT_pg)) if (FPKeepKind == CodeGenOptions::FramePointerKind::None && !Args.hasArg(options::OPT_mfentry)) D.Diag(diag::err_drv_argument_not_allowed_with) << "-fomit-frame-pointer" Index: clang/lib/Driver/ToolChains/AIX.cpp === --- clang/lib/Driver/ToolChains/AIX.cpp +++ clang/lib/Driver/ToolChains/AIX.cpp @@ -252,7 +252,7 @@ CmdArgs.push_back("-lc"); -if (Args.hasArg(options::OPT_pg)) { +if (Args.hasArg(options::OPT_p, options::OPT_pg)) { CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + "/lib/profiled")); CmdArgs.push_back(Args.MakeArgString((llvm::Twine("-L") + D.SysRoot) + Index: clang/lib/CodeGen/CodeGenFunction.cpp === --- clang/lib/CodeGen/CodeGenFunction.cpp +++ clang/lib/CodeGen/CodeGenFunction.cpp @@ -1050,7 +1050,8 @@ // inlining, we just add an attribute to insert a mcount call in backend. // The attribute "counting-function" is set to mcount function name which is // architecture dependent. - if (CGM.getCodeGenOpts().InstrumentForProfiling) { + if (CGM.getCodeGenOpts().InstrumentForProfiling || + CGM.getCodeGenOpts().InstrumentForProfilingGraph) { // Calls to fentry/mcount should not be generated if function has // the no_instrument_function attribute. if (!CurFuncDecl || !CurFuncDecl->hasAttr()) { Index: clang/lib/CodeGen/BackendUtil.cpp === --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -952,7 +952,8 @@ if (CodeGenOpts.InstrumentFunctions || CodeGenOpts.InstrumentFunctionEntryBare || CodeGenOpts.InstrumentFunctionsAfterInlining || -CodeGenOpts.InstrumentForProfiling) { +CodeGenOpts.InstrumentForProfiling || +CodeGenOpts.InstrumentForProfilingGraph) { PB.registerPipelineStartEPCallback( [](ModulePassManager , OptimizationLevel Level) { MPM.addPass(createModuleToFunctionPassAdaptor( Index: clang/include/clang/Driver/Options.td === --- clang/include/clang/Driver/Options.td +++ clang/include/clang/Driver/Options.td @@ -4129,8 +4129,10 @@ MarshallingInfoFlag>; def pedantic : Flag<["-", "--"], "pedantic">, Group, Flags<[CC1Option,FlangOption,FC1Option]>, HelpText<"Warn on language extensions">, MarshallingInfoFlag>; -def pg : Flag<["-"], "pg">,