Skip to content

Commit 36a7a98

Browse files
committed
[Remarks][Driver] Use the specified format in the remarks file extension
By default, use `.opt.yaml`, but when a format is specified with `-fsave-optimization-record=<format>`, use `.opt.<format>`. llvm-svn: 363627
1 parent 8df7f1a commit 36a7a98

File tree

5 files changed

+21
-4
lines changed

5 files changed

+21
-4
lines changed

clang/docs/UsersManual.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,9 @@ output format of the diagnostics that it generates.
351351

352352
If this option is not used, optimization records are output to a file named
353353
after the primary file being compiled. If that's "foo.c", for example,
354-
optimization records are output to "foo.opt.yaml".
354+
optimization records are output to "foo.opt.yaml". If a specific
355+
serialization format is specified, the file will be named
356+
"foo.opt.<format>".
355357

356358
.. _opt_foptimization-record-passes:
357359

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5132,9 +5132,17 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
51325132
}
51335133
}
51345134

5135-
llvm::sys::path::replace_extension(F, "opt.yaml");
5135+
std::string Extension = "opt.";
5136+
if (const Arg *A =
5137+
Args.getLastArg(options::OPT_fsave_optimization_record_EQ))
5138+
Extension += A->getValue();
5139+
else
5140+
Extension += "yaml";
5141+
5142+
llvm::sys::path::replace_extension(F, Extension);
51365143
CmdArgs.push_back(Args.MakeArgString(F));
51375144
}
5145+
51385146
if (const Arg *A =
51395147
Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) {
51405148
CmdArgs.push_back("-opt-record-passes");

clang/lib/Driver/ToolChains/Darwin.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -470,7 +470,13 @@ void darwin::Linker::ConstructJob(Compilation &C, const JobAction &JA,
470470

471471
SmallString<128> F;
472472
F = Output.getFilename();
473-
F += ".opt.yaml";
473+
F += ".opt.";
474+
if (const Arg *A =
475+
Args.getLastArg(options::OPT_fsave_optimization_record_EQ))
476+
F += A->getValue();
477+
else
478+
F += "yaml";
479+
474480
CmdArgs.push_back(Args.MakeArgString(F));
475481

476482
if (getLastProfileUseArg(Args)) {

clang/test/Driver/darwin-ld.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@
333333
//
334334
// RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record=some-format -### -o foo/bar.out 2> %t.log
335335
// RUN: FileCheck -check-prefix=PASS_REMARKS_WITH_FORMAT %s < %t.log
336-
// PASS_REMARKS_WITH_FORMAT: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" "-mllvm" "-lto-pass-remarks-format=some-format"
336+
// PASS_REMARKS_WITH_FORMAT: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.some-format" "-mllvm" "-lto-pass-remarks-format=some-format"
337337

338338
// RUN: %clang -target x86_64-apple-ios6.0 -miphoneos-version-min=6.0 -fprofile-instr-generate -### %t.o 2> %t.log
339339
// RUN: FileCheck -check-prefix=LINK_PROFILE_FIRST %s < %t.log

clang/test/Driver/opt-record.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
// CHECK-FOPT-DISABLE-PASSES-NOT: "-fno-save-optimization-record"
3838

3939
// CHECK-EQ-FORMAT: "-cc1"
40+
// CHECK-EQ-FORMAT: "-opt-record-file" "FOO.opt.some-format"
4041
// CHECK-EQ-FORMAT: "-opt-record-format" "some-format"
4142

4243
// CHECK-FOPT-DISABLE-FORMAT-NOT: "-fno-save-optimization-record"

0 commit comments

Comments
 (0)