Displaying 7 results from an estimated 7 matches for "createsymbol".
2011 Sep 08
0
[LLVMdev] [LLVM, llvm-mc, AsmParser] Symbol locations.
Now I see, that its to so trivial as I thought before. There are a lots of parser extensions that creates the symbols. And in each place we need insert add its location info. I also found that MCContext has several create symbols methods, but all these methods uses CreateSymbol private method.
So I see two possible ways here:
1. To aggregate all GetOrCreate-like symbol methods inside the AsmParser. So all asm parser extension like a COFFAsmParser should use aggregated methods instead of MCContext ones. And inside the aggregated methods we can add symbol location info.
2....
2011 Sep 08
2
[LLVMdev] [LLVM, llvm-mc, AsmParser] Symbol locations.
Hi everybody. I found that there are some problems with symbol location in AsmParser.
1. We need to know where symbol was declared.
2. We need to know where symbol was defined first time.
There are two ways:
1. Add helper table to the parser with additional symbol info. But it takes additional memory consumption.
2. Add user tag (void*) for MCSymbol object. As I understood MCSymbol can live
2018 Jun 07
2
[lld] ObjFile::createRegular is oblivious of PendingComdat
...0x00000000005fe370 lld::coff::DefinedRegular::getChunk() const
/ssd2/pirama/llvm-$
pstream/llvm/tools/lld/COFF/Symbols.h:169:43
#6 0x00000000005fe082 lld::coff::Defined::getChunk()
/ssd2/pirama/llvm-upstream/llvm$
tools/lld/COFF/Symbols.h:381:5
#7 0x0000000000656114 (anonymous
namespace)::Writer::createSymbol(lld::coff::Defined$
) /ssd2/pirama/llvm-upstream/llvm/tools/lld/COFF/Writer.cpp:617:42
#8 0x000000000064c7df (anonymous
namespace)::Writer::createSymbolAndStringTable() /s$
d2/pirama/llvm-upstream/llvm/tools/lld/COFF/Writer.cpp:0:43
#9 0x00000000006499f9 (anonymous namespace)::Writer::run()
/ssd2...
2018 Jun 07
2
[lld] ObjFile::createRegular is oblivious of PendingComdat
...rama/llvm-$
>> pstream/llvm/tools/lld/COFF/Symbols.h:169:43
>>
>> #6 0x00000000005fe082 lld::coff::Defined::getChunk()
>> /ssd2/pirama/llvm-upstream/llvm$
>> tools/lld/COFF/Symbols.h:381:5
>>
>> #7 0x0000000000656114 (anonymous namespace)::Writer::
>> createSymbol(lld::coff::Defined$
>> ) /ssd2/pirama/llvm-upstream/llvm/tools/lld/COFF/Writer.cpp:617:42
>>
>> #8 0x000000000064c7df (anonymous namespace)::Writer::createSymbolAndStringTable()
>> /s$
>> d2/pirama/llvm-upstream/llvm/tools/lld/COFF/Writer.cpp:0:43
>>
>> #9...
2010 Jun 21
2
[LLVMdev] MC: Object file specific parsing
...ction *getInitialTextSection() = 0;
/// }
-private:
+protected:
+
+ bool TokError(const char *Msg);
+
+ /// ParseIdentifier - Parse an identifier or string (as a quoted identifier)
+ /// and set \arg Res to the identifier contents.
+ bool ParseIdentifier(StringRef &Res);
+
MCSymbol *CreateSymbol(StringRef Name);
+private:
bool ParseStatement();
-
- bool TokError(const char *Msg);
void PrintMessage(SMLoc Loc, const std::string &Msg, const char *Type) const;
@@ -110,15 +121,7 @@ private:
bool ParseBinOpRHS(unsigned Precedence, const MCExpr *&Res, SMLoc &EndL...
2012 Oct 17
0
[LLVMdev] R_ARM_ABS32 disassembly with integrated-as
..._NOBITS,
ELF::SHF_WRITE |
ELF::SHF_ALLOC, SectionKind::getBSS());
EmitCodeAlignment(4, 0);
+ EmitMappingSymbol(/*IsData*/true);
}
};
}
@@ -188,6 +200,55 @@ void MCELFStreamer::EmitThumbFunc(MCSymbol *Func) {
MCSymbolData &SD = getAssembler().getOrCreateSymbolData(*Func);
SD.setFlags(SD.getFlags() | ELF_Other_ThumbFunc);
+
+ // Use this flag to output Thumb symbols after data sections.
+ IsThumb = true;
+
+ // FIXME: Instead, emit the correct mapping symbol at .text
+ EmitMappingSymbol(/*IsData*/false);
+}
+
+void MCELFStreamer::EmitMappingSymbol(...
2012 Oct 16
2
[LLVMdev] R_ARM_ABS32 disassembly with integrated-as
Attached is an example of how to reproduce the issue. It uses a C
file that happens to has a bunch of switch statements which are
encoded as jump tables, giving us data-in-code. Usage:
To build object files with clang via the -integrated-as versus via GCC:
$ export NDK_DIR=<my_ndk_dir>
$ export LLVM_DIR=<my_llvm_bin_dir>
$ make
To test that the generated objects contain the same