| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
DIDescriptor::ValidDebugInfo
-Create DebugLocs without the need to have a DwarfWriter around
llvm-svn: 70682
|
| |
|
|
|
|
|
|
| |
-Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable*
-Remove DwarfWriter::getOrCreateSourceID
-Make necessary changes for the above (fix callsites, etc.)
llvm-svn: 70520
|
| |
|
|
|
|
|
| |
which better identifies what the optimization is doing. And is more flexible for
future uses.
llvm-svn: 70440
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'll change the JIT with a follow-up patch.
llvm-svn: 70343
|
| |
|
|
| |
llvm-svn: 70275
|
| |
|
|
|
|
|
|
|
|
|
| |
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.
Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'm not 100% sure if it's necessary to change it there...
llvm-svn: 70270
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scope if the location info is missing.
Insetad of doing ...
if (inlined_subroutine && known_location)
DW_TAG_inline_subroutine
else
DW_TAG_subprogram
do
if (inlined_subroutine) {
if (known_location)
DW_TAG_inline_subroutine
} else {
DW_TAG_subprogram
}
llvm-svn: 69300
|
| |
|
|
|
|
| |
This line was accidently lost yesterday.
llvm-svn: 69286
|
| |
|
|
|
|
| |
debug info describing inlinied region.
llvm-svn: 69252
|
| |
|
|
|
|
| |
This fixes test/CodeGen//2009-01-21-invalid-debug-info.m test case.
llvm-svn: 69210
|
| |
|
|
|
|
| |
scopes (only in FastISel mode).
llvm-svn: 69116
|
| |
|
|
|
|
|
|
| |
relies on DBG_LABEL. Unfortunately this intefers with the quality of optimized code.
This patch updates dwarf writer to encode scoping information in DWARF only in FastISel mode.
llvm-svn: 68973
|
| |
|
|
|
|
| |
Now debug_inlined section is covered by TAI->doesDwarfUsesInlineInfoSection(), which is false by default.
llvm-svn: 68964
|
| |
|
|
|
|
| |
copying into the right register, avoiding a copy.
llvm-svn: 68889
|
| |
|
|
|
|
| |
and make it return the assigned register.
llvm-svn: 68888
|
| |
|
|
|
|
|
| |
from the assembler:
Error: unknown pseudo-op: `.debug_inlined'
llvm-svn: 68863
|
| |
|
|
|
|
|
|
| |
collected when nested llvm.dbg.func.start intrinsics are seen. (Right now, inliner removes nested llvm.dbg.func.start intrinisics during inlining.)
Create debug_inlined dwarf section using these information. This info is used by gdb, at least on Darwin, to enable better experience debugging inlined functions. See DwarfWriter.cpp for more information on structure of debug_inlined section.
llvm-svn: 68847
|
| |
|
|
| |
llvm-svn: 68735
|
| |
|
|
| |
llvm-svn: 68727
|
| |
|
|
|
|
| |
SelectionDAG do those. This fixes PR3955.
llvm-svn: 68546
|
| |
|
|
|
|
|
|
| |
ptrtoint and inttoptr in X86FastISel. These casts aren't always
handled in the generic FastISel code because X86 sometimes needs
custom code to do truncation and zero-extension.
llvm-svn: 66988
|
| |
|
|
|
|
|
|
|
| |
by inserting explicit zero extensions where necessary. Included
is a testcase where SelectionDAG produces a virtual register
holding an i1 value which FastISel previously mistakenly assumed
to be zero-extended.
llvm-svn: 66941
|
| |
|
|
| |
llvm-svn: 66867
|
| |
|
|
| |
llvm-svn: 66866
|
| |
|
|
|
|
| |
on the number of times a std::string is created and copied.
llvm-svn: 66396
|
| |
|
|
|
|
|
|
| |
getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior.
This is a very minor compile time win.
llvm-svn: 65438
|
| |
|
|
|
|
|
|
|
|
|
|
| |
them are generic changes.
- Use the "fast" flag that's already being passed into the asm printers instead
of shoving it into the DwarfWriter.
- Instead of calling "MI->getParent()->getParent()" for every MI, set the
machine function when calling "runOnMachineFunction" in the asm printers.
llvm-svn: 65379
|
| |
|
|
|
|
|
|
|
|
| |
a DBG_LABEL or not. We want to fall back to the original way of emitting debug
info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
need to investigate still.
llvm-svn: 65367
|
| |
|
|
| |
llvm-svn: 64428
|
| |
|
|
|
|
|
| |
the new way, where all of the information is passed on SDNodes and machine
instructions.
llvm-svn: 64427
|
| |
|
|
| |
llvm-svn: 64379
|
| |
|
|
|
|
|
| |
created. Specifically, those BuildMIs which use
"DebugLoc::getUnknownLoc()". I'll remove them soon.
llvm-svn: 63584
|
| |
|
|
|
|
| |
SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.
llvm-svn: 62762
|
| |
|
|
| |
llvm-svn: 62545
|
| |
|
|
| |
llvm-svn: 62286
|
| |
|
|
| |
llvm-svn: 62127
|
| |
|
|
|
|
| |
suggested by Chris.
llvm-svn: 62099
|
| |
|
|
|
|
|
|
|
| |
and use it in x86 address mode folding. Also, make
getRegForValue return 0 for illegal types even if it has a
ValueMap for them, because Argument values are put in the
ValueMap. This fixes PR3181.
llvm-svn: 60696
|
| |
|
|
| |
llvm-svn: 59952
|
| |
|
|
| |
llvm-svn: 58814
|
| |
|
|
|
|
|
|
|
| |
- Move the EH landing-pad code and adjust it so that it works
with FastISel as well as with SDISel.
- Add FastISel support for @llvm.eh.exception and
@llvm.eh.selector.
llvm-svn: 57539
|
| |
|
|
| |
llvm-svn: 57428
|
| |
|
|
|
|
|
| |
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.
llvm-svn: 57329
|
| |
|
|
|
|
|
| |
for things like null pointers, which at this level aren't
different from regular integer constants.
llvm-svn: 57265
|
| |
|
|
|
|
|
| |
It turns out that this is a fairly common operation,
and it's easy enough to handle.
llvm-svn: 56990
|
| |
|
|
|
|
|
|
|
|
|
| |
sequences like this:
sete %al
testb %al, %al
jne LBB11_1
with this:
je LBB11_1
llvm-svn: 56969
|
| |
|
|
|
|
| |
they'll be a little more visible. Also, update and reword them a bit.
llvm-svn: 56877
|
| |
|
|
|
|
| |
i1 operands are assumed to already by zero-extended.
llvm-svn: 56615
|
| |
|
|
| |
llvm-svn: 56610
|
| |
|
|
|
|
| |
giving the target a chance to materialize constants.
llvm-svn: 56605
|