| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 74215
|
| |
|
|
|
|
| |
Again, no intendtional functionality change.
llvm-svn: 71854
|
| |
|
|
|
|
| |
though the classes have been marked with "VISIBILITY_HIDDEN".
llvm-svn: 71827
|
| |
|
|
|
|
|
|
|
| |
logical/sane approach to organizing all of the stuff that goes into writing out
DWARF information. Honestly? even this is too complex for what it's supposed to
be doing.
Trivia: It *looks* like there would be functionality changes, however there aren't!
llvm-svn: 71821
|
| |
|
|
| |
llvm-svn: 71784
|
| |
|
|
|
|
|
| |
Basically, there was a situation where it was getting an empty vector and doing
a .back() on that. Which isn't cool.
llvm-svn: 71746
|
| |
|
|
|
|
|
|
| |
belonged. The variable declaration stuff wasn't happy with it where it
was. Sorry that the testcase is so big. Bugpoint wasn't able to reduce it
successfully.
llvm-svn: 71714
|
| |
|
|
|
|
|
| |
blast it away.
- Move InlineInfo bookkeeping to bookkeep the correct debug info object.
llvm-svn: 71519
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The DwarfWriter expects DbgScopes and DIEs to behave themselves according to
DwarfWriter's rules. However, inlined functions violate these rules. There are
two different types of DIEs associated with an inlined function: an abstract
instance, which has information about the original source code for the function
being inlined; and concrete instances, which are created for each place the
function was inlined and point back to the abstract instance.
This patch tries to stay true to this schema. It bypasses how regular DbgScopes
and DIEs are created and used when necessary. It provides special handling for
DIEs of abstract and concrete instances.
This doesn't take care of all of the problems with debug info for inlined
functions, but it's a step in the right direction. For one thing, llvm-gcc
generates wrong IR (it's missing some llvm.dbg intrinsics at the point where the
function's inlined) for this example:
#include <stdio.h>
static __inline__ __attribute__((always_inline)) int bar(int x) { return 4; }
void foo() {
long long b = 1;
int Y = bar(4);
printf("%d\n", Y);
}
while clang generates correct IR.
llvm-svn: 71410
|
| |
|
|
|
|
|
|
|
| |
concrete instance of an inlined function, we can get the actual address of the
abstract instance inside of the compile unit.
This isn't currently used, but will be by a future check-in.
llvm-svn: 71263
|
| |
|
|
| |
llvm-svn: 71256
|
| |
|
|
|
|
| |
several regressions. The problem due to 71158 is now fixed.
llvm-svn: 71176
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
checking for bcopy... no
checking for getc_unlocked... Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decUtility.c:360: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
make[4]: *** [decUtility.o] Error 1
make[4]: *** Waiting for unfinished jobs....
Assertion failed: (0 && "Unknown SCEV kind!"), function operator(), file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmCore.roots/llvmCore~obj/src/lib/Analysis/ScalarEvolution.cpp, line 511.
/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvmgcc42.roots/llvmgcc42~obj/src/libdecnumber/decNumber.c:5591: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions.
make[4]: *** [decNumber.o] Error 1
make[3]: *** [all-stage2-libdecnumber] Error 2
make[3]: *** Waiting for unfinished jobs....
llvm-svn: 71165
|
| |
|
|
|
|
|
|
|
|
|
| |
methods:
-Have it return a label ID
-Remove the unused Instruction parameter
No functionality change.
llvm-svn: 71132
|
| |
|
|
|
|
|
| |
change.
- Reformatting.
llvm-svn: 71118
|
| |
|
|
|
|
|
| |
For implicit decls like "self" and "_cmd" in ObjC, these decls
should not have a location.
llvm-svn: 70964
|
| |
|
|
| |
llvm-svn: 70900
|
| |
|
|
|
|
|
|
| |
-Depend on DebugLocs for source line info.
(Comes with Regression-Be-Gone(tm))
llvm-svn: 70871
|
| |
|
|
| |
llvm-svn: 70811
|
| |
|
|
|
|
| |
-Depend on DebugLocs for source line info.
llvm-svn: 70803
|
| |
|
|
|
|
|
|
| |
DIDescriptor::ValidDebugInfo
-Create DebugLocs without the need to have a DwarfWriter around
llvm-svn: 70682
|
| |
|
|
| |
llvm-svn: 70539
|
| |
|
|
| |
llvm-svn: 70537
|
| |
|
|
| |
llvm-svn: 70534
|
| |
|
|
| |
llvm-svn: 70533
|
| |
|
|
|
|
|
|
| |
-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
|
| |
|
|
|
|
| |
Patch by Marius Wachtler
llvm-svn: 69637
|
| |
|
|
| |
llvm-svn: 69216
|
| |
|
|
| |
llvm-svn: 69202
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
to support C99 inline, GNU extern inline, etc. Related bugzilla's
include PR3517, PR3100, & PR2933. Nothing uses this yet, but it
appears to work.
llvm-svn: 68940
|
| |
|
|
|
|
|
| |
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: 68747
|
| |
|
|
| |
llvm-svn: 68745
|
| |
|
|
|
|
|
|
| |
the key. This will cause it to create a new std::string, which isn't
wanted. Instead, pass back the "const char*". Modify the EmitString() method to
take a "const char*".
llvm-svn: 68741
|
| |
|
|
|
|
| |
gives a micro speedup in the Dwarf writer.
llvm-svn: 68728
|
| |
|
|
|
|
| |
directly as a return value type.
llvm-svn: 68647
|
| |
|
|
|
|
| |
default to verbose.
llvm-svn: 67668
|
| |
|
|
| |
llvm-svn: 67661
|
| |
|
|
| |
llvm-svn: 66867
|
| |
|
|
| |
llvm-svn: 66866
|
| |
|
|
| |
llvm-svn: 66611
|
| |
|
|
| |
llvm-svn: 66607
|