| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 83171
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
information. This allows arbitrary code involving DW_OP_plus_uconst
and DW_OP_deref. The scheme allows for easy extention to include,
any, or all of the DW_OP_ opcodes. I thought about just exposing all
of them, but, wasn't sure if people wanted the dwarf opcodes exposed
in the api. Is that a layering violation?
With this scheme, the entire existing block scheme used by llvm-gcc
can be switched over to the new scheme. I think that would be
cleaner, as then the compiler specific bits are not present in llvm
proper. Before the old code can be yanked however, similar code in
clang would have to be removed.
Next up, more testing.
llvm-svn: 83120
|
| |
|
|
| |
llvm-svn: 83083
|
| |
|
|
|
|
| |
delete a few blank lines.
llvm-svn: 82729
|
| |
|
|
| |
llvm-svn: 82727
|
| |
|
|
|
|
| |
info, because the target may use it for other things, this fixes PR5036
llvm-svn: 82684
|
| |
|
|
| |
llvm-svn: 82591
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
U lib/CodeGen/AsmPrinter/DwarfException.cpp
U lib/CodeGen/AsmPrinter/DwarfException.h
--- Reverse-merging r82274 into '.':
U lib/Target/TargetLoweringObjectFile.cpp
G lib/CodeGen/AsmPrinter/DwarfException.cpp
These revisions were breaking everything.
llvm-svn: 82396
|
| |
|
|
|
|
|
|
| |
internal, they shouldn't use the indirect pointer stuff. In the case of
throw_rethrow_test, it was marked as 'internal' and calculated its own offset to
its contents.
llvm-svn: 82354
|
| |
|
|
| |
llvm-svn: 82333
|
| |
|
|
| |
llvm-svn: 82332
|
| |
|
|
| |
llvm-svn: 82282
|
| |
|
|
|
|
|
|
|
| |
into the __DATA section. At launch time, dyld has to update most of the section
to fix up the type info pointers. It's better to place it into the __TEXT
section and use pc-rel indirect pointer encodings. Similar to the personality
routine.
llvm-svn: 82274
|
| |
|
|
|
|
| |
Overriding doFinalization is pretty lame.
llvm-svn: 82268
|
| |
|
|
|
|
|
|
|
| |
e.g. pinning
variables to specified absolute address. Make use of this feature for MSP430.
This unbreaks PR4776.
llvm-svn: 82227
|
| |
|
|
|
|
| |
currently unused.
llvm-svn: 82157
|
| |
|
|
|
|
| |
we have MCInstPrinter.
llvm-svn: 82006
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding
fields from MAI: they aren't part of the asm syntax, they are
related to the structure of the object file.
To replace their functionality, add a new
TLOF::getSymbolForDwarfGlobalReference method which asks targets
to decide how to reference a global from EH in a pc-relative way.
The default implementation just returns the symbol. The default
darwin implementation references the symbol through an indirect
$non_lazy_ptr stub. The bizarro x86-64 darwin specialization
handles the weird "foo@GOTPCREL+4" hack.
DwarfException.cpp now uses this to emit the reference to the
symbol in the right way, and this also eliminates another
horrible hack from DwarfException.cpp:
- if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL"))
- O << "-" << MAI->getPCSymbol();
llvm-svn: 81991
|
| |
|
|
| |
llvm-svn: 81970
|
| |
|
|
|
|
|
|
| |
one implementation into its one caller. This eliminates a totally
awesome and gratuitous hack where we casted a Function* to
GlobalVariable*.
llvm-svn: 81967
|
| |
|
|
|
|
| |
it into all of its call sites and simplifying them.
llvm-svn: 81962
|
| |
|
|
| |
llvm-svn: 81946
|
| |
|
|
| |
llvm-svn: 81942
|
| |
|
|
| |
llvm-svn: 81755
|
| |
|
|
|
|
|
|
|
|
|
| |
full AsmPrinter, and change TargetRegistry to keep track
of registered MCInstPrinters.
llvm-mc is still linking in the entire
target foo to get the code emitter stuff, but this is an
important step in the right direction.
llvm-svn: 81754
|
| |
|
|
| |
llvm-svn: 81705
|
| |
|
|
|
|
| |
has real information about linker private linkage.
llvm-svn: 81695
|
| |
|
|
|
|
|
| |
now that printBasicBlockLabel is only used for starting
a MBB. This allows elimination of a bunch of arguments.
llvm-svn: 81684
|
| |
|
|
|
|
| |
instead.
llvm-svn: 81677
|
| |
|
|
|
|
|
|
| |
Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that
we only have one place that decides what to name bb labels. Hopefully various
clients of printBasicBlockLabel can start using GetMBBSymbol instead.
llvm-svn: 81652
|
| |
|
|
| |
llvm-svn: 81542
|
| |
|
|
|
|
|
|
|
| |
object, the timer it creates was not being deleted. Since the
timer belonged to a static timer group, the timer group would
be destroyed on shutdown, and would notice and complain that
not all timers it contained were destroyed.
llvm-svn: 81533
|
| |
|
|
| |
llvm-svn: 81454
|
| |
|
|
| |
llvm-svn: 81436
|
| |
|
|
|
|
|
|
| |
from the exception tables. However, Duncan explained why it's a can of worms to
do it the GCC way. I went back to doing it the LLVM way and added Duncan's
explanation so that I don't do this again in the future.
llvm-svn: 81434
|
| |
|
|
|
|
|
|
| |
like what GCC outputs. The mysterious code to insert padding wasn't in GCC at
all. I modified the TType base offset code to calculate the offset like GCC
does, though.
llvm-svn: 81424
|
| |
|
|
|
|
|
|
| |
code within it was the same inside and out. There's still a problem of the
TypeInfoSize should be the size of the TType format encoding (at least that's
what GCC thinks it should be).
llvm-svn: 81417
|
| |
|
|
| |
llvm-svn: 81409
|
| |
|
|
|
|
| |
sizeof(DW_EH_PE_udata4).
llvm-svn: 81408
|
| |
|
|
| |
llvm-svn: 81406
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Basically, this patch is working towards removing the hard-coded values that are
output for the CIE. In particular, the CIE augmentation and the CIE augmentation
size. Both of these should be calculated. In the process, I was able to make a
bunch of code simpler.
The encodings for the personality, LSDA, and FDE in the CIE are still not
correct. They should be generated either from target-specific callbacks (blech!)
or grokked from first-principles.
llvm-svn: 81404
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
|
| |
|
|
| |
llvm-svn: 81382
|
| |
|
|
| |
llvm-svn: 81381
|
| |
|
|
| |
llvm-svn: 81380
|
| |
|
|
| |
llvm-svn: 81055
|
| |
|
|
| |
llvm-svn: 80710
|
| |
|
|
| |
llvm-svn: 80704
|
| |
|
|
| |
llvm-svn: 80689
|
| |
|
|
|
|
| |
EmitLabel()
llvm-svn: 80677
|