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