| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
While we still have a few (~4) non-trivial comments with string
concatenation, etc that should remain conditionalized, these trivial
literal comments can be simplified.
llvm-svn: 196416
|
|
|
|
| |
llvm-svn: 196414
|
|
|
|
|
|
| |
checks. No functional change.
llvm-svn: 196412
|
|
|
|
|
|
|
| |
a few things more const as well because we're now using const
references to refer to iterators.
llvm-svn: 196398
|
|
|
|
|
|
|
|
|
|
| |
Since we always emit only one abbrevation section (shared by all the
compilation units in this module) there's no need for a separate label
at the start of each one (and we weren't using the CU ID anyway, so
there really was only one label). Use the section label instead and drop
the wholely unused debug_abbrev_end label.
llvm-svn: 196394
|
|
|
|
|
|
|
|
| |
Instead, reuse the same MCSymbol - this should make the code easier to
follow by avoiding hard to trace dependencies between different bits of
code.
llvm-svn: 196392
|
|
|
|
| |
llvm-svn: 196323
|
|
|
|
| |
llvm-svn: 196310
|
|
|
|
| |
llvm-svn: 196304
|
|
|
|
|
|
| |
Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter
llvm-svn: 196288
|
|
|
|
|
|
| |
It broke CodeGen/R600 tests with +Asserts.
llvm-svn: 196272
|
|
|
|
| |
llvm-svn: 196270
|
|
|
|
|
|
|
|
|
|
|
|
| |
propagation graph via graphviz.
This is useful for debugging issues in the BlockFrequency implementation
since one can easily visualize where probability mass and other errors
occur in the propagation.
This is the MI version of r194654.
llvm-svn: 196183
|
|
|
|
|
|
| |
into a single function. No functional change.
llvm-svn: 196181
|
|
|
|
| |
llvm-svn: 196180
|
|
|
|
| |
llvm-svn: 196179
|
|
|
|
|
|
|
| |
and emitted per function and CU. Begins coalescing ranges as a first
class entity through debug info. No functional change.
llvm-svn: 196178
|
|
|
|
| |
llvm-svn: 196168
|
|
|
|
|
|
| |
Review feedback from Eric Christopher on r196140
llvm-svn: 196160
|
|
|
|
|
|
|
|
| |
that they might be type units instead of compile units.
CR feedback from Eric Christopher on r196139.
llvm-svn: 196159
|
|
|
|
| |
llvm-svn: 196140
|
|
|
|
|
|
|
|
|
|
| |
CompileUnit/TypeUnit derived classes.
Header/cpp file rename to follow immediately - just splitting out the
commits for ease of review/reading to demonstrate that the renaming
changes are entirely mechanical.
llvm-svn: 196139
|
|
|
|
| |
llvm-svn: 196130
|
|
|
|
|
|
| |
This allows it to be used in TargetLoweringObjectFileImpl.cpp.
llvm-svn: 196117
|
|
|
|
|
|
| |
functionality.
llvm-svn: 195969
|
|
|
|
|
|
| |
constraints on their frame offsets.
llvm-svn: 195950
|
|
|
|
| |
llvm-svn: 195945
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
target independent.
Most of the x86 specific stackmap/patchpoint handling was necessitated by the
use of the native address-mode format for frame index operands. PEI has now
been modified to treat stackmap/patchpoint similarly to DEBUG_INFO, allowing
us to use a simple, platform independent register/offset pair for frame
indexes on stackmap/patchpoints.
Notes:
- Folding is now platform independent and automatically supported.
- Emiting patchpoints with direct memory references now just involves calling
the TargetLoweringBase::emitPatchPoint utility method from the target's
XXXTargetLowering::EmitInstrWithCustomInserter method. (See
X86TargetLowering for an example).
- No more ugly platform-specific operand parsers.
This patch shouldn't change the generated output for X86.
llvm-svn: 195944
|
|
|
|
| |
llvm-svn: 195931
|
|
|
|
|
|
|
|
| |
ARanges included even extern variables referenced by pointer non-type
template parameters even though that variable isn't part of this
compilation unit.
llvm-svn: 195895
|
|
|
|
|
|
|
| |
cross-reference debug output with encoded stack-maps, and to create stackmap
test-cases.
llvm-svn: 195874
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently error in clang with:
"error: thread-local storage is unsupported for the current target", but we
can start to get the llvm level ready.
When compiling
template<typename T>
struct foo {
static __declspec(thread) int bar;
};
template<typename T>
__declspec(therad) int foo<T>::bar;
template struct foo<int>;
msvc produces
SECTION HEADER #3
.tls$ name
0 physical address
0 virtual address
4 size of raw data
12F file pointer to raw data (0000012F to 00000132)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0301040 flags
Initialized Data
COMDAT; sym= "public: static int foo<int>::bar" (?bar@?$foo@H@@2HA)
4 byte align
Read Write
gcc produces a ".data$__emutls_v.<symbol>" for the testcase with
__declspec(thread) replaced with thread_local.
llvm-svn: 195849
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch we use simple names for COMDAT sections (like .text or .bss).
This matches the MSVC behavior.
When merging it is the COMDAT symbol that is used to decide if two sections
should be merged, so there is no point in building a fancy name.
This survived a bootstrap on mingw32.
llvm-svn: 195798
|
|
|
|
| |
llvm-svn: 195790
|
|
|
|
|
|
|
| |
Since type units aren't in the CUMap, use the DwarfUnits list to iterate
over units for tasks such as accelerator table building.
llvm-svn: 195776
|
|
|
|
|
|
| |
DwarfDebug and the style guide
llvm-svn: 195763
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A Direct stack map location records the address of frame index. This
address is itself the value that the runtime requested. This differs
from IndirectMemRefOp locations, which refer to a stack locations from
which the requested values must be loaded. Direct locations can
directly communicate the address if an alloca, while IndirectMemRefOp
handle register spills.
For example:
entry:
%a = alloca i64...
llvm.experimental.stackmap(i32 <ID>, i32 <shadowBytes>, i64* %a)
Since both the alloca and stackmap intrinsic are in the entry block,
and the intrinsic takes the address of the alloca, the runtime can
assume that LLVM will not substitute alloca with any intervening
value. This must be verified by the runtime by checking that the stack
map's location is a Direct location type. The runtime can then
determine the alloca's relative location on the stack immediately after
compilation, or at any time thereafter. This differs from Register and
Indirect locations, because the runtime can only read the values in
those locations when execution reaches the instruction address of the
stack map.
llvm-svn: 195712
|
|
|
|
|
|
|
|
|
| |
simple wrapper again.
r195698 moved the type unit checking up into getOrCreateTypeDIE so
remove the redundant check and fold the functions back together again.
llvm-svn: 195700
|
|
|
|
|
|
| |
to a type unit.
llvm-svn: 195698
|
|
|
|
|
|
|
|
|
|
| |
registration.
It might be possible to eventually use one data structure, but I haven't
looked at the exact criteria used for accelerator tables and pubtypes to
see if there's good reason for the differences between the two or not.
llvm-svn: 195696
|
|
|
|
|
|
|
| |
I'm not sure how it was checking for the wrong values...
PR18023.
llvm-svn: 195670
|
|
|
|
| |
llvm-svn: 195636
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Moved the requirement for SelectionDAG::getConstant() to return legally
typed nodes slightly earlier. There were two optional DAGCombine passes
that were missed out and were required to produce type-legal DAGs.
Simplified a code-path in tryFoldToZero() to use SelectionDAG::getConstant().
This provides support for both promoted and expanded vector types whereas the
previous code only supported promoted vector types.
Fixes a "Type for zero vector elements is not legal" assertion detected by
an llvm-stress generated test.
Reviewers: resistor
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2251
llvm-svn: 195635
|
|
|
|
|
|
|
| |
A volatile load should block us from trying to coalesce stores.
PR18023
llvm-svn: 195599
|
|
|
|
|
|
| |
useful when analyzing parts of zlib's behavior here.
llvm-svn: 195588
|
|
|
|
|
|
|
|
|
|
| |
This avoids the need for an extra list of SkeletonCUs and associated
cleanup while staging things to be cleaner for further type unit
improvements.
Also hopefully fixes a memory leak introduced in r195166.
llvm-svn: 195536
|
|
|
|
|
|
|
|
|
| |
a non-relocatable number offset.
One fixme to make the ranges as discrete data structures and
have range lists explicitly represented rather than as a list of symbols.
llvm-svn: 195523
|
|
|
|
| |
llvm-svn: 195522
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improvements over r195317:
- Set/restore EnableFastISel flag instead of just running FastISel within
SelectAllBasicBlocks; the flag is checked in various places, and
FastISel won't run properly if those places don't do the right thing.
- Test looks for normal ISel versus FastISel behavior, and not
something more subtle that doesn't work everywhere.
Based on work by Andrea Di Biagio.
llvm-svn: 195491
|
|
|
|
| |
llvm-svn: 195490
|