mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-05 13:09:10 +00:00
Emit comment for gc.relocate showing base and derived pointers in human readable form.
Differential Revision: http://reviews.llvm.org/D9326 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@236497 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
672996e18e
commit
a5f2faff5c
@ -31,6 +31,7 @@
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/Module.h"
|
||||
#include "llvm/IR/Operator.h"
|
||||
#include "llvm/IR/Statepoint.h"
|
||||
#include "llvm/IR/TypeFinder.h"
|
||||
#include "llvm/IR/UseListOrder.h"
|
||||
#include "llvm/IR/ValueSymbolTable.h"
|
||||
@ -2002,6 +2003,10 @@ private:
|
||||
// printInfoComment - Print a little comment after the instruction indicating
|
||||
// which slot it occupies.
|
||||
void printInfoComment(const Value &V);
|
||||
|
||||
// printGCRelocateComment - print comment after call to the gc.relocate
|
||||
// intrinsic indicating base and derived pointer names.
|
||||
void printGCRelocateComment(const Value &V);
|
||||
};
|
||||
} // namespace
|
||||
|
||||
@ -2642,10 +2647,26 @@ void AssemblyWriter::printInstructionLine(const Instruction &I) {
|
||||
Out << '\n';
|
||||
}
|
||||
|
||||
/// printGCRelocateComment - print comment after call to the gc.relocate
|
||||
/// intrinsic indicating base and derived pointer names.
|
||||
void AssemblyWriter::printGCRelocateComment(const Value &V) {
|
||||
assert(isGCRelocate(&V));
|
||||
GCRelocateOperands GCOps(cast<Instruction>(&V));
|
||||
|
||||
Out << " ; (";
|
||||
writeOperand(GCOps.basePtr(), false);
|
||||
Out << ", ";
|
||||
writeOperand(GCOps.derivedPtr(), false);
|
||||
Out << ")";
|
||||
}
|
||||
|
||||
/// printInfoComment - Print a little comment after the instruction indicating
|
||||
/// which slot it occupies.
|
||||
///
|
||||
void AssemblyWriter::printInfoComment(const Value &V) {
|
||||
if (isGCRelocate(&V))
|
||||
printGCRelocateComment(V);
|
||||
|
||||
if (AnnotationWriter)
|
||||
AnnotationWriter->printInfoComment(V, Out);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user