| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
need to alloc/dealloc.
llvm-svn: 66591
|
|
|
|
| |
llvm-svn: 66589
|
|
|
|
| |
llvm-svn: 66586
|
|
|
|
|
|
| |
- Remove unused method.
llvm-svn: 66585
|
|
|
|
|
|
|
|
|
|
|
| |
the untimed version of getOrCreateSourceID. getOrCreateSourceID calls
GetOrCreateSourceID, of course.
- Move some methods into the "private" section. Constify at least one method.
- General clean-ups.
llvm-svn: 66582
|
|
|
|
|
|
| |
writing individually.
llvm-svn: 66577
|
|
|
|
|
|
| |
emit exception and debug Dwarf info.
llvm-svn: 66571
|
|
|
|
|
|
| |
on the number of times a std::string is created and copied.
llvm-svn: 66396
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and extern_weak_odr. These are the same as the non-odr versions,
except that they indicate that the global will only be overridden
by an *equivalent* global. In C, a function with weak linkage can
be overridden by a function which behaves completely differently.
This means that IP passes have to skip weak functions, since any
deductions made from the function definition might be wrong, since
the definition could be replaced by something completely different
at link time. This is not allowed in C++, thanks to the ODR
(One-Definition-Rule): if a function is replaced by another at
link-time, then the new function must be the same as the original
function. If a language knows that a function or other global can
only be overridden by an equivalent global, it can give it the
weak_odr linkage type, and the optimizers will understand that it
is alright to make deductions based on the function body. The
code generators on the other hand map weak and weak_odr linkage
to the same thing.
llvm-svn: 66339
|
|
|
|
|
|
| |
directly, instsad of an DIArray of all argument types.
llvm-svn: 65643
|
|
|
|
| |
llvm-svn: 65468
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This fixes objc.dg/dwarf-prototypes.m scan-assembler DW_AT_prototyped from llvmgcc42 test suite.
llvm-svn: 65357
|
|
|
|
|
|
| |
subprograms then there is not any debug info to emit.
llvm-svn: 65352
|
|
|
|
|
|
|
| |
- Correct comment.
- Whitespace changes.
llvm-svn: 65149
|
|
|
|
|
|
| |
emitted.
llvm-svn: 65092
|
|
|
|
| |
llvm-svn: 64920
|
|
|
|
|
|
|
|
| |
of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF.
Add support for two additional DWARF attributes to encode Objective-C runtime version number.
llvm-svn: 64834
|
|
|
|
| |
llvm-svn: 64815
|
|
|
|
| |
llvm-svn: 64204
|
|
|
|
| |
llvm-svn: 63663
|
|
|
|
| |
llvm-svn: 63660
|
|
|
|
| |
llvm-svn: 63527
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
information output. However, many target specific tool chains prefer to encode
only one compile unit in an object file. In this situation, the LLVM code
generator will include debugging information entities in the compile unit
that is marked as main compile unit. The code generator accepts maximum one main
compile unit per module. If a module does not contain any main compile unit
then the code generator will emit multiple compile units in the output object
file.
[Part 1]
Update DebugInfo APIs to accept optional boolean value while creating DICompileUnit to mark the unit as "main" unit. By defaults all units are considered non-main. Update SourceLevelDebugging.html to document "main" compile unit.
Update DebugInfo APIs to not accept and encode separate source file/directory entries while creating various llvm.dbg.* entities. There was a recent, yet to be documented, change to include this additional information so no documentation changes are required here.
Update DwarfDebug to handle "main" compile unit. If "main" compile unit is seen then all DIEs are inserted into "main" compile unit. All other compile units are used to find source location for llvm.dbg.* values. If there is not any "main" compile unit then create unique compile unit DIEs for each llvm.dbg.compile_unit.
[Part 2]
Create separate llvm.dbg.compile_unit for each input file. Mark compile unit create for main_input_filename as "main" compile unit. Use appropriate compile unit, based on source location information collected from the tree node, while creating llvm.dbg.* values using DebugInfo APIs.
---
This is Part 1.
llvm-svn: 63400
|
|
|
|
| |
llvm-svn: 63358
|
|
|
|
| |
llvm-svn: 63357
|