diff options
| author | Andrew V. Tischenko <andrew.v.tischenko@gmail.com> | 2017-11-09 12:45:40 +0000 |
|---|---|---|
| committer | Andrew V. Tischenko <andrew.v.tischenko@gmail.com> | 2017-11-09 12:45:40 +0000 |
| commit | 3543f0a71224f8e50fcda0069752a95b068af05e (patch) | |
| tree | 7be15e287a612dc617aa893e8c61431f48fc7904 /llvm/lib/Target | |
| parent | 509834d7d3c1f09ad0b478a31a3ff61338875044 (diff) | |
| download | bcm5719-llvm-3543f0a71224f8e50fcda0069752a95b068af05e.tar.gz bcm5719-llvm-3543f0a71224f8e50fcda0069752a95b068af05e.zip | |
Add -print-schedule scheduling comments to inline asm.
Differential Revision: https://reviews.llvm.org/D39728
llvm-svn: 317782
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp | 19 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h | 6 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 5 |
3 files changed, 16 insertions, 14 deletions
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp index f7e31de65f6..58978a2a930 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp @@ -193,11 +193,10 @@ public: ~X86AddressSanitizer() override = default; // X86AsmInstrumentation implementation: - void InstrumentAndEmitInstruction(const MCInst &Inst, - OperandVector &Operands, - MCContext &Ctx, - const MCInstrInfo &MII, - MCStreamer &Out) override { + void InstrumentAndEmitInstruction(const MCInst &Inst, OperandVector &Operands, + MCContext &Ctx, const MCInstrInfo &MII, + MCStreamer &Out, + /* unused */ bool) override { InstrumentMOVS(Inst, Operands, Ctx, MII, Out); if (RepPrefix) EmitInstruction(Out, MCInstBuilder(X86::REP_PREFIX)); @@ -1045,13 +1044,13 @@ X86AsmInstrumentation::~X86AsmInstrumentation() = default; void X86AsmInstrumentation::InstrumentAndEmitInstruction( const MCInst &Inst, OperandVector &Operands, MCContext &Ctx, - const MCInstrInfo &MII, MCStreamer &Out) { - EmitInstruction(Out, Inst); + const MCInstrInfo &MII, MCStreamer &Out, bool PrintSchedInfoEnabled) { + EmitInstruction(Out, Inst, PrintSchedInfoEnabled); } -void X86AsmInstrumentation::EmitInstruction(MCStreamer &Out, - const MCInst &Inst) { - Out.EmitInstruction(Inst, *STI); +void X86AsmInstrumentation::EmitInstruction(MCStreamer &Out, const MCInst &Inst, + bool PrintSchedInfoEnabled) { + Out.EmitInstruction(Inst, *STI, PrintSchedInfoEnabled); } unsigned X86AsmInstrumentation::GetFrameRegGeneric(const MCContext &Ctx, diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h b/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h index 97a55cd8ad9..42a9dc3ba26 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h +++ b/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h @@ -42,7 +42,8 @@ public: virtual void InstrumentAndEmitInstruction( const MCInst &Inst, SmallVectorImpl<std::unique_ptr<MCParsedAsmOperand>> &Operands, - MCContext &Ctx, const MCInstrInfo &MII, MCStreamer &Out); + MCContext &Ctx, const MCInstrInfo &MII, MCStreamer &Out, + bool PrintSchedInfoEnabled); protected: friend X86AsmInstrumentation * @@ -54,7 +55,8 @@ protected: unsigned GetFrameRegGeneric(const MCContext &Ctx, MCStreamer &Out); - void EmitInstruction(MCStreamer &Out, const MCInst &Inst); + void EmitInstruction(MCStreamer &Out, const MCInst &Inst, + bool PrintSchedInfoEnabled = false); const MCSubtargetInfo *&STI; diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 2a784c9822a..4dc0466344b 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -2699,8 +2699,9 @@ static const char *getSubtargetFeatureName(uint64_t Val); void X86AsmParser::EmitInstruction(MCInst &Inst, OperandVector &Operands, MCStreamer &Out) { - Instrumentation->InstrumentAndEmitInstruction(Inst, Operands, getContext(), - MII, Out); + Instrumentation->InstrumentAndEmitInstruction( + Inst, Operands, getContext(), MII, Out, + getParser().shouldPrintSchedInfo()); } bool X86AsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode, |

