r232439 - GCOV: Expose the -coverage-exit-block-before-body flag in clang -cc1
David Blaikie
dblaikie at gmail.com
Mon Mar 16 17:27:32 PDT 2015
On Mar 16, 2015 4:57 PM, "Justin Bogner" <mail at justinbogner.com> wrote:
>
> Author: bogner
> Date: Mon Mar 16 18:52:21 2015
> New Revision: 232439
>
> URL: http://llvm.org/viewvc/llvm-project?rev=232439&view=rev
> Log:
> GCOV: Expose the -coverage-exit-block-before-body flag in clang -cc1
>
> This exposes the optional exit block placement logic from r232438 as a
> clang -cc1 option. There is a test on the llvm side, but there isn't
> really a way to inspect the gcov options from clang to test it here as
> well.
I'm missing something probably - what's the benefit of that over just using
-mllvm to pass this flag to llvm directly? (If I'm remembering how this
stuff works)
>
> Modified:
> cfe/trunk/include/clang/Driver/CC1Options.td
> cfe/trunk/include/clang/Frontend/CodeGenOptions.def
> cfe/trunk/lib/CodeGen/BackendUtil.cpp
> cfe/trunk/lib/Frontend/CompilerInvocation.cpp
>
> Modified: cfe/trunk/include/clang/Driver/CC1Options.td
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=232439&r1=232438&r2=232439&view=diff
>
==============================================================================
> --- cfe/trunk/include/clang/Driver/CC1Options.td (original)
> +++ cfe/trunk/include/clang/Driver/CC1Options.td Mon Mar 16 18:52:21 2015
> @@ -182,6 +182,8 @@ def coverage_cfg_checksum : Flag<["-"],
> HelpText<"Emit CFG checksum for functions in .gcno files.">;
> def coverage_no_function_names_in_data : Flag<["-"],
"coverage-no-function-names-in-data">,
> HelpText<"Emit function names in .gcda files.">;
> +def coverage_exit_block_before_body : Flag<["-"],
"coverage-exit-block-before-data">,
> + HelpText<"Emit the exit block before the body blocks in .gcno files.">;
> def coverage_version_EQ : Joined<["-"], "coverage-version=">,
> HelpText<"Four-byte version string for gcov files.">;
> def test_coverage : Flag<["-"], "test-coverage">,
>
> Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.def
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.def?rev=232439&r1=232438&r2=232439&view=diff
>
==============================================================================
> --- cfe/trunk/include/clang/Frontend/CodeGenOptions.def (original)
> +++ cfe/trunk/include/clang/Frontend/CodeGenOptions.def Mon Mar 16
18:52:21 2015
> @@ -35,6 +35,7 @@ CODEGENOPT(AsmVerbose , 1, 0) ///
> CODEGENOPT(ObjCAutoRefCountExceptions , 1, 0) ///< Whether ARC should be
EH-safe.
> CODEGENOPT(CoverageExtraChecksum, 1, 0) ///< Whether we need a second
checksum for functions in GCNO files.
> CODEGENOPT(CoverageNoFunctionNamesInData, 1, 0) ///< Do not include
function names in GCDA files.
> +CODEGENOPT(CoverageExitBlockBeforeBody, 1, 0) ///< Whether to emit the
exit block before the body blocks in GCNO files.
> CODEGENOPT(CUDAIsDevice , 1, 0) ///< Set when compiling for CUDA
device.
> CODEGENOPT(CXAAtExit , 1, 1) ///< Use __cxa_atexit for calling
destructors.
> CODEGENOPT(CXXCtorDtorAliases, 1, 0) ///< Emit complete ctors/dtors as
linker
>
> Modified: cfe/trunk/lib/CodeGen/BackendUtil.cpp
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/BackendUtil.cpp?rev=232439&r1=232438&r2=232439&view=diff
>
==============================================================================
> --- cfe/trunk/lib/CodeGen/BackendUtil.cpp (original)
> +++ cfe/trunk/lib/CodeGen/BackendUtil.cpp Mon Mar 16 18:52:21 2015
> @@ -380,6 +380,7 @@ void EmitAssemblyHelper::CreatePasses()
> Options.NoRedZone = CodeGenOpts.DisableRedZone;
> Options.FunctionNamesInData =
> !CodeGenOpts.CoverageNoFunctionNamesInData;
> + Options.ExitBlockBeforeBody =
CodeGenOpts.CoverageExitBlockBeforeBody;
> MPM->add(createGCOVProfilerPass(Options));
> if (CodeGenOpts.getDebugInfo() == CodeGenOptions::NoDebugInfo)
> MPM->add(createStripSymbolsPass(true));
>
> Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=232439&r1=232438&r2=232439&view=diff
>
==============================================================================
> --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
> +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Mon Mar 16 18:52:21 2015
> @@ -494,6 +494,8 @@ static bool ParseCodeGenArgs(CodeGenOpti
> Opts.CoverageExtraChecksum = Args.hasArg(OPT_coverage_cfg_checksum);
> Opts.CoverageNoFunctionNamesInData =
> Args.hasArg(OPT_coverage_no_function_names_in_data);
> + Opts.CoverageExitBlockBeforeBody =
> + Args.hasArg(OPT_coverage_exit_block_before_body);
> if (Args.hasArg(OPT_coverage_version_EQ)) {
> StringRef CoverageVersion =
Args.getLastArgValue(OPT_coverage_version_EQ);
> if (CoverageVersion.size() != 4) {
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150316/b256742b/attachment.html>
More information about the cfe-commits
mailing list