silvas added inline comments. ================ Comment at: lib/Driver/Tools.cpp:5520 @@ +5519,3 @@ + A->claim(); + if ((StringRef(A->getValue(0)) == "-fprofile-ir-instr") && + (Args.hasArg(options::OPT_fprofile_instr_generate) || ---------------- This is definitely not the right thing to do. Don't hijack -Xclang (which is a completely generic thing).
================ Comment at: lib/Frontend/CompilerInvocation.cpp:483 @@ +482,3 @@ + Opts.ProfileIRInstr = true; + else + // Opts.ClangProfInstrGen will be used for Clang instrumentation only. ---------------- This still isn't factored right. I think at this point the meaning of the driver-level options is not really useful at CC1 level (too convoluted) for it to be useful to pass them through. The right thing to do here is probably more like: - refactor so that we have 4 individual CC1 options for InstrProfileOutput, InstrProfileInput, ProfileIRInstr, ClangProfInstrGen (although probably rename ClangProfInstrGen and ProfileIRInstr to be consistent with each other, e.g. "ProfileIRInstr" and "ProfileClangInstr"). - add logic in Driver to convert from the driver-level options to the CC1 options. ================ Comment at: test/CodeGen/pgo-instrumentation.c:5 @@ +4,3 @@ +// RUN: %clang -O2 -c -Xclang -fprofile-ir-instr -fprofile-instr-generate %s -mllvm -debug-pass=Structure 2>&1 | FileCheck %s -check-prefix=CHECK-PGOGENPASS-INVOKED-V1 +// CHECK-PGOGENPASS-INVOKED-V1: PGOInstrumentationGenPass +// ---------------- It isn't clear what V1/V2 mean. http://reviews.llvm.org/D15829 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits