search for: emitvalue

Displaying 18 results from an estimated 18 matches for "emitvalue".

2012 Nov 19
0
[LLVMdev] Debug information under windows
...; + return; + } // Emit Label+Offset const MCExpr *Plus = diff -r 547972237a05 -r d28fa29d4b44 lib/CodeGen/AsmPrinter/DIE.cpp --- a/lib/CodeGen/AsmPrinter/DIE.cpp Wed Oct 10 20:39:45 2012 +0200 +++ b/lib/CodeGen/AsmPrinter/DIE.cpp Mon Nov 19 10:31:49 2012 +0100 @@ -257,6 +257,11 @@ /// EmitValue - Emit delta value. /// void DIEDelta::EmitValue(AsmPrinter *AP, unsigned Form) const { + if (AP->MAI->getDwarfSectionOffsetDirective()) { + // FIXME: Can DIEDelta be used in other contexts than section offset? + AP->EmitSectionOffset(LabelHi, LabelLo); + return; + } AP-&gt...
2011 Jul 06
1
[LLVMdev] clang-llvm exceptions problem powerpc-apple-darwin
...;MCSectionMachO> (getCurrentSection()); const MCSectionMachO * SecRef = dyn_cast<MCSectionMachO>(&Sym- >getSection()); #if 0 OutStreamer.EmitAbsValue(Exp, GetSizeOfEncodedValue(Encoding)); #elif 0 if (SecRef->getType() == MCSectionMachO::S_COALESCED) OutStreamer.EmitValue(Exp, GetSizeOfEncodedValue(Encoding)); else OutStreamer.EmitAbsValue(Exp, GetSizeOfEncodedValue(Encoding)); #else if (SecCur->getType() == MCSectionMachO::S_COALESCED || SecRef->getType() == MCSectionMachO::S_COALESCED) OutStreamer.EmitValue(Exp, GetSizeOfEncodedValue(E...
2017 Mar 01
3
Excessive use of LLVM_FALLTHROUGH?
...more code; break; default: llvm_unreachable("Foo with no Bar"); } So, can I take out all the ones marked "not needed" as an NFC cleanup? Thanks, --paulr P.S. If you care, the specific example I tripped over is in llvm/lib/CodeGen/AsmPrinter/DIE.cpp, DIEInteger::EmitValue().
2011 Dec 20
2
[LLVMdev] Proposal for -filetype=obj full big endian support
...piecemeal. Have you found that not to be the case? The Emit* routines handle endianness for you, so you shouldn't have to do much beyond that. For example, here's the EmitInvValue() implementation that underlies things and does the endianness transform: /// EmitIntValue - Special case of EmitValue that avoids the client having to /// pass in a MCExpr for constant integers. void MCStreamer::EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace) { assert(Size <= 8 && "Invalid size"); assert((isUIntN(8 * Size, Value) || isIntN(8 *...
2014 Jul 21
2
[LLVMdev] VMKit build problems; can't use LLVM3.4.2 ?
...ist and new to VMKit; please advise if I should post this elsewhere. VMKit doesn't seem to build with LLVM/Clang 3.4.2 -- seems that one must use LLVM3.3. I see the following error: VmkitGCPrinter.cpp:363:53: error: too many arguments to function call, expected 2, have 3 AP.OutStreamer.EmitValue(address, IntPtrSize, 0); I now see the vmkit build instructions (http://vmkit.llvm.org/get_started.html) explicitly say to use LLVM and Clang 3.3; using that version fixes the above. It seems to be that the signature of (at least) one function from the LLVM library (e.g., llvm/MC/MCStreamer.h::Em...
2012 Oct 26
5
[LLVMdev] Debug information under windows
Hello, Recently I found binaries produced with LLVM impossible to debug under Windows. This was probably related to the following bug: http://llvm.org/bugs/show_bug.cgi?id=13636 Asm generated from .ll files revealed that some offsets to debug information were incorrect: they were absolute instead of relative to their sections. Following patch seemed to have repaired the problem, so I'm
2011 Dec 20
0
[LLVMdev] Proposal for -filetype=obj full big endian support
...piecemeal. Have you found that not to be the case? The Emit* routines handle endianness for you, so you shouldn't have to do much beyond that. For example, here's the EmitInvValue() implementation that underlies things and does the endianness transform: /// EmitIntValue - Special case of EmitValue that avoids the client having to /// pass in a MCExpr for constant integers. void MCStreamer::EmitIntValue(uint64_t Value, unsigned Size, unsigned AddrSpace) { assert(Size <= 8 && "Invalid size"); assert((isUIntN(8 * Size, Value) || isIntN(8 *...
2010 Jul 16
0
[LLVMdev] Win32 COFF Support - Patch 3
...al void EmitTBSSSymbol(const MCSection *Section, MCSymbol *Symbol, > - uint64_t Size, unsigned ByteAlignment); > + uint64_t Size, unsigned ByteAlignment); > virtual void EmitBytes(StringRef Data, unsigned AddrSpace); > virtual void EmitValue(const MCExpr *Value, unsigned Size, > unsigned AddrSpace); > virtual void EmitGPRel32Value(const MCExpr *Value); > virtual void EmitValueToAlignment(unsigned ByteAlignment, int64_t Value, > - unsigned ValueSize, unsigned MaxByte...
2010 Jul 14
2
[LLVMdev] Win32 COFF Support - Patch 3
On Sun, Jul 11, 2010 at 6:10 PM, Chris Lattner <clattner at apple.com> wrote: > This probably needs to be slightly tweaked to work with mainline.  I don't see anything objectionable, but I think Daniel needs to review this one. Updated patch to work with mainline. http://github.com/Bigcheese/llvm-mirror/commit/d19a4c82c18afc4830c09b70f02d162292231c94 - Michael Spencer
2011 Dec 20
0
[LLVMdev] Proposal for -filetype=obj full big endian support
...found that not to be the case? > > The Emit* routines handle endianness for you, so you shouldn't have to do much beyond that. For example, here's the EmitInvValue() implementation that underlies things and does the endianness transform: > > /// EmitIntValue - Special case of EmitValue that avoids the client having to > /// pass in a MCExpr for constant integers. > void MCStreamer::EmitIntValue(uint64_t Value, unsigned Size, > unsigned AddrSpace) { > assert(Size <= 8 && "Invalid size"); > assert((isUIntN(8 * Size,...
2011 Dec 20
4
[LLVMdev] Proposal for -filetype=obj full big endian support
Proposal for ELF text and data big endian support for direct object generation Unless I am mistaken, currently big endian support in the MC layer for ELF direct object generation is limited to ELF headers and tables like relocations. Text and data section contents are still generated as individual bytes. It looks as if the effort was started, but never completed. The proposal is to extend the
2013 Dec 17
0
[LLVMdev] Implementing the ldr pseudo instruction in ARM integrated assembler
...+ const MCSection *Section = CpI->first; + ConstantPool &CP = CpI->second; + MCStreamer &Streamer = getParser().getStreamer(); + Streamer.SwitchSection(Section); + Streamer.EmitLabel(CP.getLabel()); + for (size_t I = 0; I < CP.getNumEntries(); ++I) + Streamer.EmitValue(CP.getEntry(I), 4); + } +} This is missing data-in-code indicators (see EmitDataRegion()). + at RUN: clang -target arm -integrated-as -c %s -o %t + at RUN: llvm-objdump -d %t | FileCheck %s + at RUN: llvm-objdump -r %t | FileCheck --check-prefix=RELOC %s MC tests should not call clang. There i...
2010 May 27
0
[LLVMdev] ARM Relocation Information
...ARM GCC generates symbols like: _ZTIi (TARGET2) While Clang doesn't include the TARGET2 relocation information, and that mess up cross-linking. Looking at the AsmPrinter, when emitting the global constant value (EmitGlobalConstant), it calls EmitGlobalConstantImpl, which end up using EmitValue or EmitIntValue, but neither has relocation information on them. Also, searching the code, I couldn't find any reference to relocation or any of the basic relocation types available in Codesourcery's GCC. Is there anything at all in LLVM regarding relocations? If not, what would be the...
2013 Nov 16
2
[LLVMdev] Implementing the ldr pseudo instruction in ARM integrated assembler
Moving discussion to llvm-commits now that I have a more developed implementation: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20131111/195401. html > -----Original Message----- > From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On > Behalf Of David Peixotto > Sent: Tuesday, November 12, 2013 11:09 AM > To: 'Amara Emerson' >
2013 Dec 17
2
[LLVMdev] Implementing the ldr pseudo instruction in ARM integrated assembler
...= CpI->first; > + ConstantPool &CP = CpI->second; > + MCStreamer &Streamer = getParser().getStreamer(); > + Streamer.SwitchSection(Section); > + Streamer.EmitLabel(CP.getLabel()); > + for (size_t I = 0; I < CP.getNumEntries(); ++I) > + Streamer.EmitValue(CP.getEntry(I), 4); > + } > +} > > This is missing data-in-code indicators (see EmitDataRegion()). I was not aware of that API, thanks for pointing it out. I added the calls in the latest patch. See the ConstantPool::emitEntries() method. > + at RUN: clang -target arm -integrated...
2020 Aug 10
2
[Debuginfo][DWARF][LLD] Remove obsolete debug info in lld.
On Mon, Aug 10, 2020 at 5:15 AM Alexey Lapshin <avl.lapshin at gmail.com> wrote: > > Hi Jonas, > > Thank you for the comments, please find my answers below... > > On 06.08.2020 20:39, Jonas Devlieghere wrote: > > Hi Alexey, > > I should've looked at this earlier. I went through the thread again and I've > made some comments, mostly from the dsymutil
2013 Dec 17
0
[LLVMdev] Implementing the ldr pseudo instruction in ARM integrated assembler
...; + ConstantPool &CP = CpI->second; >> + MCStreamer &Streamer = getParser().getStreamer(); >> + Streamer.SwitchSection(Section); >> + Streamer.EmitLabel(CP.getLabel()); >> + for (size_t I = 0; I < CP.getNumEntries(); ++I) >> + Streamer.EmitValue(CP.getEntry(I), 4); >> + } >> +} >> >> This is missing data-in-code indicators (see EmitDataRegion()). > > I was not aware of that API, thanks for pointing it out. I added the calls > in the latest patch. See the ConstantPool::emitEntries() method. > >>...
2010 Jun 21
2
[LLVMdev] MC: Object file specific parsing
...on, then just issueing the section switch directive will not realign - // the section. However, this is arguably more reasonable behavior, and there - // is no good reason for someone to intentionally emit incorrectly sized - // values into the implicitly aligned sections. - if (Align) - Out.EmitValueToAlignment(Align, 0, 1, 0); - - return false; -} - bool AsmParser::ParseEscapedString(std::string &Data) { assert(Lexer.is(AsmToken::String) && "Unexpected current token!"); @@ -1368,261 +1124,6 @@ bool AsmParser::ParseDirectiveELFType() { return false; } -/// Par...