Skip to content

Commit c0b35d5

Browse files
author
Yusra Syeda
committed
refactor translation time
1 parent 4a13aa6 commit c0b35d5

File tree

3 files changed

+15
-16
lines changed

3 files changed

+15
-16
lines changed

clang/lib/CodeGen/CodeGenModule.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,9 @@ void CodeGenModule::Release() {
10001000
getModule().addModuleFlag(llvm::Module::Error, "Product Id",
10011001
llvm::MDString::get(VMContext, ProductId));
10021002

1003+
getModule().addModuleFlag(llvm::Module::Error, "TranslationTime",
1004+
static_cast<uint64_t>(std::time(nullptr)));
1005+
10031006
getModule().addModuleFlag(
10041007
llvm::Module::Error, "zos_le_char_mode",
10051008
llvm::MDString::get(VMContext, Context.getLangOpts().ASCIICharMode

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2295,14 +2295,6 @@ void Clang::AddSystemZTargetArgs(const llvm::Triple &Triple,
22952295
CmdArgs.push_back("-mfloat-abi");
22962296
CmdArgs.push_back("soft");
22972297
}
2298-
2299-
if (Triple.isOSzOS()) {
2300-
CmdArgs.push_back("-mllvm");
2301-
CmdArgs.push_back(
2302-
Args.MakeArgString(llvm::Twine("-translation-time=")
2303-
.concat(llvm::Twine(std::time(nullptr)))
2304-
.str()));
2305-
}
23062298
}
23072299

23082300
void Clang::AddX86TargetArgs(const ArgList &Args,

llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,12 @@
2828
#include "llvm/MC/MCStreamer.h"
2929
#include "llvm/MC/TargetRegistry.h"
3030
#include "llvm/Support/Chrono.h"
31-
#include "llvm/Support/CommandLine.h"
3231
#include "llvm/Support/ConvertEBCDIC.h"
3332
#include "llvm/Support/FormatProviders.h"
3433
#include "llvm/Support/FormatVariadic.h"
3534

3635
using namespace llvm;
3736

38-
cl::opt<uint64_t> TranslationTime(
39-
"translation-time",
40-
cl::desc("sets the time of compilation in seconds since epoch"),
41-
cl::init(0));
42-
4337
// Return an RI instruction like MI with opcode Opcode, but with the
4438
// GR64 register operands turned into GR32s.
4539
static MCInst lowerRILow(const MachineInstr *MI, unsigned Opcode) {
@@ -1057,11 +1051,21 @@ static uint32_t getProductPatch(Module &M) {
10571051
return LLVM_VERSION_PATCH;
10581052
}
10591053

1054+
static time_t getTranslationTime(Module &M) {
1055+
std::time_t Time = 0;
1056+
if (auto *Val = cast_or_null<ConstantAsMetadata>(
1057+
M.getModuleFlag("TranslationTime"))) {
1058+
long SecondsSinceEpoch = cast<ConstantInt>(Val->getValue())->getSExtValue();
1059+
Time = static_cast<time_t>(SecondsSinceEpoch);
1060+
}
1061+
return Time;
1062+
}
1063+
10601064
void SystemZAsmPrinter::emitIDRLSection(Module &M) {
10611065
OutStreamer->pushSection();
10621066
OutStreamer->switchSection(getObjFileLowering().getIDRLSection());
10631067
constexpr unsigned IDRLDataLength = 30;
1064-
std::time_t Time = TranslationTime;
1068+
std::time_t Time = getTranslationTime(M);
10651069

10661070
uint32_t ProductVersion = getProductVersion(M);
10671071
uint32_t ProductRelease = getProductRelease(M);
@@ -1390,7 +1394,7 @@ void SystemZAsmPrinter::emitPPA2(Module &M) {
13901394
PPA2Sym = OutContext.createTempSymbol("PPA2", false);
13911395
MCSymbol *DateVersionSym = OutContext.createTempSymbol("DVS", false);
13921396

1393-
std::time_t Time = TranslationTime;
1397+
std::time_t Time = getTranslationTime(M);
13941398
SmallString<15> CompilationTime; // 14 + null
13951399
raw_svector_ostream O(CompilationTime);
13961400
O << formatv("{0:%Y%m%d%H%M%S}", llvm::sys::toUtcTime(Time));

0 commit comments

Comments
 (0)