| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
frame information.
There are more than one paths to where the frame information is emitted. Place
the call to generateCompactUnwindEncodings() into the method which outputs the
frame information, thus ensuring that the encoding is there for every path. This
involved threading the MCAsmBackend object through to this method.
<rdar://problem/13623355>
llvm-svn: 190335
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In DIBuilder, the context field of a TAG_member is updated to use the
scope reference. Verifier is updated accordingly.
DebugInfoFinder now needs to generate a type identifier map to have
access to the actual scope. Same applies for BreakpointPrinter.
processModule of DebugInfoFinder is called during initialization phase
of the verifier to make sure the type identifier map is constructed early
enough.
We are now able to unique a simple class as demonstrated by the added
testing case.
llvm-svn: 190334
|
|
|
|
|
|
|
|
|
|
|
|
| |
DIScope::getContext is a wrapper function that calls the specific getContext
method on each subclass. When we switch DIType::getContext to return DIScopeRef
instead of DIScope, DIScope::getContext can no longer return a DIScope without
a type identifier map.
DIScope::getContext is only used by DwarfDebug, so we move it to DwarfDebug
to have easy access to the type identifier map.
llvm-svn: 190330
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The work on this project was left in an unfinished and inconsistent state.
Hopefully someone will eventually get a chance to implement this feature, but
in the meantime, it is better to put things back the way the were. I have
left support in the bitcode reader to handle the case-range bitcode format,
so that we do not lose bitcode compatibility with the llvm 3.3 release.
This reverts the following commits: 155464, 156374, 156377, 156613, 156704,
156757, 156804 156808, 156985, 157046, 157112, 157183, 157315, 157384, 157575,
157576, 157586, 157612, 157810, 157814, 157815, 157880, 157881, 157882, 157884,
157887, 157901, 158979, 157987, 157989, 158986, 158997, 159076, 159101, 159100,
159200, 159201, 159207, 159527, 159532, 159540, 159583, 159618, 159658, 159659,
159660, 159661, 159703, 159704, 160076, 167356, 172025, 186736
llvm-svn: 190328
|
|
|
|
|
|
|
|
|
|
| |
This helper function needs the type identifier map when we switch
DIType::getContext to return DIScopeRef instead of DIScope.
Since isSubprogramContext is used by DwarfDebug only, We move it to DwarfDebug
to have easy access to the map.
llvm-svn: 190325
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A reference to a scope is more general than a reference to a type since
DIType is a subclass of DIScope.
A reference to a type can be either an identifier for the type or
the DIType itself, while a reference to a scope can be either an
identifier for the type (when the scope is indeed a type) or the
DIScope itself. A reference to a type and a reference to a scope
will be resolved in the same way. The only difference is in the
verifier when a field is a reference to a type (i.e. the containing
type field of a DICompositeType) or a field is a reference to a scope
(i.e. the context field of a DIType).
This is to get ready for switching DIType::getContext to return
DIScopeRef instead of DIScope.
Tighten up isTypeRef and isScopeRef to make sure the identifier is not
empty and the MDNode is DIType for TypeRef and DIScope for ScopeRef.
llvm-svn: 190322
|
|
|
|
|
|
| |
TAG_file_type is also a scope.
llvm-svn: 190321
|
|
|
|
|
|
|
| |
stores, make sure the load or store that accesses the higher half does not have
an alignment that is larger than the offset from the original address.
llvm-svn: 190318
|
|
|
|
| |
llvm-svn: 190317
|
|
|
|
|
|
|
|
|
| |
IT blocks can only be one instruction lonf, and can only contain a subset of
the 16 instructions.
Patch by Artyom Skrobov!
llvm-svn: 190309
|
|
|
|
| |
llvm-svn: 190308
|
|
|
|
| |
llvm-svn: 190304
|
|
|
|
|
|
|
|
|
|
|
| |
Fix XCoreLowerThreadLocal trying to initialise globals
which have no initializer.
Add handling of const expressions containing thread local variables.
These need to be replaced with instructions, as the thread ID is
used to access the thread local variable.
llvm-svn: 190300
|
|
|
|
|
|
|
| |
This sidesteps a bug in PrescheduleNodesWithMultipleUses() which
does not check if callResources will be affected by the transformation.
llvm-svn: 190299
|
|
|
|
| |
llvm-svn: 190298
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to generate the compact unwind encoding from the machine
instructions. However, this had the problem that if the user used `-save-temps'
or compiled their hand-written `.s' file (with CFI directives), we wouldn't
generate the compact unwind encoding.
Move the algorithm that generates the compact unwind encoding into the
MCAsmBackend. This way we can generate the encoding whether the code is from a
`.ll' or `.s' file.
<rdar://problem/13623355>
llvm-svn: 190290
|
|
|
|
|
|
|
|
| |
following 26 instructions,
SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL
llvm-svn: 190288
|
|
|
|
| |
llvm-svn: 190271
|
|
|
|
|
|
| |
For context field of subroutine_type and when creating artificial types.
llvm-svn: 190270
|
|
|
|
|
|
| |
Improve readability. No functionality change.
llvm-svn: 190269
|
|
|
|
| |
llvm-svn: 190259
|
|
|
|
|
|
| |
flag.
llvm-svn: 190258
|
|
|
|
|
|
|
|
|
|
| |
precision loads and stores as well as reg+imm double precision loads and stores.
Previously, expansion of loads and stores was done after register allocation,
but now it takes place during legalization. As a result, users will see double
precision stores and loads being emitted to spill and restore 64-bit FP registers.
llvm-svn: 190235
|
|
|
|
| |
llvm-svn: 190234
|
|
|
|
|
|
|
|
| |
functions marked 'nobuiltin'. That approach doesn't play well with LTO, and
there's no harm in marking a call as 'builtin' if it was going to be a builtin
regardless.
llvm-svn: 190233
|
|
|
|
| |
llvm-svn: 190232
|
|
|
|
|
|
|
|
| |
a DISubprogram.
Verifier is updated accordingly.
llvm-svn: 190229
|
|
|
|
|
|
| |
into a 5-bit or 6-bit field.
llvm-svn: 190226
|
|
|
|
|
|
| |
Remove one cast and improve readability. No functionality change.
llvm-svn: 190225
|
|
|
|
| |
llvm-svn: 190224
|
|
|
|
| |
llvm-svn: 190221
|
|
|
|
|
|
|
|
| |
which is
equivalent to "beq $zero, $zero, offset".
llvm-svn: 190220
|
|
|
|
| |
llvm-svn: 190219
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instead of having its own implementation.
The implementation of isTBAAVtableAccess is in TypeBasedAliasAnalysis.cpp
since it is related to the format of TBAA metadata.
The path for struct-path tbaa will be exercised by
test/Instrumentation/ThreadSanitizer/read_from_global.ll, vptr_read.ll, and
vptr_update.ll when struct-path tbaa is on by default.
llvm-svn: 190216
|
|
|
|
|
|
| |
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
llvm-svn: 190200
|
|
|
|
|
|
|
|
| |
a DICompositeType.
Verifier is updated accordingly.
llvm-svn: 190190
|
|
|
|
|
|
|
|
|
|
|
| |
of DIType.
Implement DIType::generateRef to return a type reference. This function will be
used in setContaintingType and in DIBuilder to generete the type reference.
No functionality change.
llvm-svn: 190188
|
|
|
|
| |
llvm-svn: 190181
|
|
|
|
| |
llvm-svn: 190180
|
|
|
|
| |
llvm-svn: 190179
|
|
|
|
| |
llvm-svn: 190178
|
|
|
|
|
|
| |
The latency based scheduling could induce spills in some cases.
llvm-svn: 190177
|
|
|
|
|
|
|
|
| |
Allow subtargets to customize the generic scheduling strategy.
This is convenient for targets that don't need to add new heuristics
by specializing the strategy.
llvm-svn: 190176
|
|
|
|
| |
llvm-svn: 190170
|
|
|
|
| |
llvm-svn: 190169
|
|
|
|
|
|
| |
The if above it ensures the property anyway.
llvm-svn: 190168
|
|
|
|
|
|
| |
There's no 'B3' in the example.
llvm-svn: 190167
|
|
|
|
| |
llvm-svn: 190156
|
|
|
|
|
|
|
| |
Tested with 'llvm-tblgen -print-records' which outputs identical records before
and after this patch.
llvm-svn: 190155
|
|
|
|
|
|
| |
Test cases are included in patch.
llvm-svn: 190154
|