On Mar 16, 2015 4:57 PM, "Justin Bogner" <[email protected]> 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 > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
