| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 53253
|
|
|
|
|
|
|
|
|
| |
moves in order to get correct debug info. Since
I can't imagine how any target could possibly
be any different, I've just stripped out the
option: now all the world's like Darwin!
llvm-svn: 53134
|
|
|
|
| |
llvm-svn: 53123
|
|
|
|
|
|
| |
slow the compiler down at -O0 some 30% or more. Ooops.
llvm-svn: 53120
|
|
|
|
|
|
| |
debug information is being output, because it's leet!
llvm-svn: 52994
|
|
|
|
| |
llvm-svn: 52992
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.
Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.
This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.
llvm-svn: 52943
|
|
|
|
|
|
| |
some uses of std::vector, where it's return std::vector by value. Yuck!
llvm-svn: 52800
|
|
|
|
| |
llvm-svn: 52689
|
|
|
|
| |
llvm-svn: 52600
|
|
|
|
|
|
|
| |
According to DWARF-2 specification, the line information is provided through an offset in the .debug_line section.
Replace the label reference that is used with a section offset.
llvm-svn: 52468
|
|
|
|
|
|
|
|
|
|
|
| |
Darwin. This is a hack of course, but it does
at least look at the right thing: gotpcrel means
that this is already an offset, so an explicit
offset is not needed (and wrong). I think this
is good enough for the moment: Anton is working
on something better.
llvm-svn: 50850
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on x86-64 linux. This causes no regressions on
32 bit linux and 32 bit ppc. More tests pass
on 64 bit ppc with no regressions. I didn't
turn on eh on 64 bit linux because the intrinsics
needed to compile the eh runtime aren't done
yet. But if you turn it on and link with the
mainline runtime then eh seems to work fine
on x86-64 linux with this patch. Thanks to
Dale for testing. The main point of the patch
is that if you output that some object is
encoded using 4 bytes you had better not output
8 bytes for it: the patch makes everything
consistent.
llvm-svn: 50825
|
|
|
|
| |
llvm-svn: 50463
|
|
|
|
|
|
| |
targets.
llvm-svn: 50451
|
|
|
|
|
|
|
| |
stack tracebacks on Darwin x86-64 won't work by default;
nevertheless, everybody but me thinks this is a good idea.
llvm-svn: 49663
|
|
|
|
|
|
| |
Corresponds to -fno-unwind-tables (usually default in gcc).
llvm-svn: 49361
|
|
|
|
|
|
| |
the start of each of those functions. This makes assemblers unhappy
llvm-svn: 49176
|
|
|
|
| |
llvm-svn: 49096
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
review feedback.
-enable-eh is still accepted but doesn't do anything.
EH intrinsics use Dwarf EH if the target supports that,
and are handled by LowerInvoke otherwise.
The separation of the EH table and frame move data is,
I think, logically figured out, but either one still
causes full EH info to be generated (not sure how to
split the metadata correctly).
MachineModuleInfo::needsFrameInfo is no longer used and
is removed.
llvm-svn: 49064
|
|
|
|
| |
llvm-svn: 49046
|
|
|
|
|
|
|
|
|
|
|
| |
not marked nounwind, or for all functions when -enable-eh
is set, provided the target supports Dwarf EH.
llvm-gcc generates nounwind in the right places; other FEs
will need to do so also. Given such a FE, -enable-eh should
no longer be needed.
llvm-svn: 49006
|
|
|
|
|
|
| |
be relocatable. Describe why .set is needed better.
llvm-svn: 48848
|
|
|
|
| |
llvm-svn: 47765
|
|
|
|
| |
llvm-svn: 46930
|
|
|
|
|
|
| |
llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before.
llvm-svn: 46635
|
|
|
|
|
|
|
|
| |
calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation.
Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants.
llvm-svn: 46597
|
|
|
|
|
|
| |
associated function is so marked.
llvm-svn: 46088
|
|
|
|
|
|
|
|
|
| |
ShortenEHDataFor64Bits as a not-very-accurate
abstraction to cover all the changes in DwarfWriter.
Some cosmetic changes to Darwin assembly code for
gcc testsuite compatibility.
llvm-svn: 46029
|
|
|
|
|
|
|
| |
because assembler/linker can't cope with weak absolutes.
PR 1880.
llvm-svn: 45811
|
|
|
|
|
|
|
| |
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
llvm-svn: 45674
|
|
|
|
| |
llvm-svn: 45454
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to know about calls that cannot throw ('nounwind'):
if such a call does throw for some reason then the
personality will terminate the program. The distinction
between an ordinary call and a nounwind call is that
an ordinary call gets an entry in the exception table
but a nounwind call does not. This patch sets up the
exception table appropriately. One oddity is that
I've chosen to bracket nounwind calls with labels (like
invokes) - the other choice would have been to bracket
ordinary calls with labels. While bracketing
ordinary calls is more natural (because bracketing
by labels would then correspond exactly to getting an
entry in the exception table), I didn't do it because
introducing labels impedes some optimizations and I'm
guessing that ordinary calls occur more often than
nounwind calls. This fixes the gcc filter2 eh test,
at least at -O0 (the inliner needs some tweaking at
higher optimization levels).
llvm-svn: 45197
|
|
|
|
|
|
| |
for Darwin PPC, but it's not fully working yet.
llvm-svn: 44258
|
|
|
|
|
|
|
|
| |
to use different mappings for EH and debug info;
no functional change yet.
Fix warning in X86CodeEmitter.
llvm-svn: 44056
|
|
|
|
|
|
| |
SourceFiles list is fully filled in so that it sees all of the files.
llvm-svn: 42506
|
|
|
|
|
|
| |
add more such code for DIEDwarfLabel::SizeOf and DIEObjectLabel::SizeOf.
llvm-svn: 42435
|
|
|
|
|
|
| |
targets with 64-bit addresses.
llvm-svn: 42434
|
|
|
|
|
|
|
|
| |
other than PPC64. Instead of fixing it, just remove it and fix all the
places that use it to use TargetData::getPointerSize() instead, as there
aren't very many. Most of the references were in DwarfWriter.cpp.
llvm-svn: 42419
|
|
|
|
|
|
| |
such as will happen when .loc directives are used.
llvm-svn: 42277
|
|
|
|
|
|
| |
consistency with the other currently empty sections.
llvm-svn: 42276
|
|
|
|
|
|
| |
use with .loc directives.
llvm-svn: 42275
|
|
|
|
| |
llvm-svn: 42257
|
|
|
|
| |
llvm-svn: 42204
|
|
|
|
|
|
|
|
|
| |
"_-[NSString(local) isNullOrNil]".eh = 0
.no_dead_strip "_-[NSString(local) isNullOrNil]".eh
The ".eh" should be inside the quotes.
llvm-svn: 42074
|
|
|
|
|
|
|
| |
Add a new DenseMapInfo::isEqual method to allow clients to redefine
the equality predicate used when probing the hash table.
llvm-svn: 42042
|
|
|
|
|
|
| |
information for EH.
llvm-svn: 41852
|
|
|
|
|
|
| |
that global stub instead of doing the ".set" thingy we were doing before.
llvm-svn: 41838
|