[PATCH] Add ability to emit internal instruction representation to CodeGen assembly output.This patch re-uses the implementation of 'llvm-mc -show-inst' and makes itavailable to llc as 'llc -asm-show-inst'.This is necessary to test parts of...

Daniel Sanders daniel.sanders at imgtec.com
Tue Jun 24 03:02:13 PDT 2014


Hi rafael,

...MIPS32r6/MIPS64r6 without resorting to
'llc -filetype=obj' tests. For example, on MIPS32r2 and earlier we use the
'jr $rs' instruction for indirect branches and returns. On MIPS32r6, we no
longer have 'jr $rs' and use 'jalr $zero, $rs' instead. The catch is that,
on MIPS32r6, 'jr $rs' is an alias for 'jalr $zero, $rs' and is the preferred
way of writing this instruction. As a result, all MIPS ISA's emit 'jr $rs' in
their assembly output and the assembler encodes this to different opcodes
according to the ISA.

Using this option, we can check that the MCInst really is a JR or a JALR by
matching the emitted comment. This removes the need for a 'llc -filetype=obj'
test.

http://reviews.llvm.org/D4267

Files:
  include/llvm/MC/MCTargetOptionsCommandFlags.h

Index: include/llvm/MC/MCTargetOptionsCommandFlags.h
===================================================================
--- include/llvm/MC/MCTargetOptionsCommandFlags.h
+++ include/llvm/MC/MCTargetOptionsCommandFlags.h
@@ -36,12 +36,17 @@
 cl::opt<int> DwarfVersion("dwarf-version", cl::desc("Dwarf version"),
                           cl::init(0));
 
+cl::opt<bool> ShowMCInst("asm-show-inst",
+                         cl::desc("Emit internal instruction representation to "
+                                  "assembly file"));
+
 static inline MCTargetOptions InitMCTargetOptionsFromFlags() {
   MCTargetOptions Options;
   Options.SanitizeAddress =
       (AsmInstrumentation == MCTargetOptions::AsmInstrumentationAddress);
   Options.MCRelaxAll = RelaxAll;
   Options.DwarfVersion = DwarfVersion;
+  Options.ShowMCInst = ShowMCInst;
   return Options;
 }
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4267.10777.patch
Type: text/x-patch
Size: 866 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140624/9a23648b/attachment.bin>


More information about the llvm-commits mailing list