| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
| |
-test_single_input flag specifies a file name with test data.
Review URL: http://reviews.llvm.org/D13359
Patch by Mike Aizatsky!
llvm-svn: 249096
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The ClangExpressionVariable::CreateVariableInList functions looked cute, but
caused more confusion than they solved. I removed them, and instead made sure
that there are adequate facilities for easily adding newly-constructed
ExpressionVariables to lists.
I also made some of the constructors that are common be generic, so that it's
possible to construct expression variables from generic places (like the ABI and
ValueObject) without having to know the specifics about the class.
llvm-svn: 249095
|
| |
|
|
| |
llvm-svn: 249093
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
optimization
When trying to optimize fortified library functions use the right
location to insert new instructions in order to preserve correct
def-use order.
This fixes an issue where a misplaced instruction definition would
happen to be *after* one of its use after a RAUW, forming invalid IR.
This behavior was introduced by r227250.
Differential Revision: http://reviews.llvm.org/D13301
rdar://problem/22802369
llvm-svn: 249092
|
| |
|
|
| |
llvm-svn: 249091
|
| |
|
|
|
|
|
|
| |
With -fms-extensions it is possible to have a non-class record that is a
template specialization cause an assertion failure via the call to
Type::getAsCXXRecordDecl. Fixes PR 24246.
llvm-svn: 249090
|
| |
|
|
| |
llvm-svn: 249089
|
| |
|
|
| |
llvm-svn: 249088
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace LiveInterval usage with LiveVariables. LiveIntervals
computes far more information than is needed for this pass
which just needs to find if an SGPR is live out of the
defining block.
LiveIntervals are not usually available that early, requiring
computing them twice which is very expensive. The extra run of
LiveIntervals/LiveVariables/SlotIndexes was costing in total
about 5% of compile time.
Continuing to use LiveIntervals is problematic. It seems
there is an option (early-live-intervals) to run the analysis
about where it should go to avoid recomputing LiveVariables,
but it seems to be completely broken with subreg liveness
enabled. There are also problems from trying to recompute
LiveIntervals since this seems to undo LiveVariables
and clearing kill flags, causing TwoAddressInstructions
to make bad decisions.
Insert the pass right after live variables and preserve it.
The tricky case to worry about might be phis since
LiveVariables doesn't count a register as live out if
in the successor block it is only used in a phi,
but I don't think this is a concern right now
because SIFixSGPRCopies replaces SGPR phis.
llvm-svn: 249087
|
| |
|
|
|
|
|
|
| |
for "set" pseudo op in PIC mode.
Differential Revision: http://reviews.llvm.org/D13173
llvm-svn: 249086
|
| |
|
|
|
|
|
|
|
|
|
| |
This was already being done when injecting the VBPtr, but not
when injecting the VFPtr. This fixes a number of tests in LLDB's
test suite.
Reviewed by: David Majnemer
Differential Revision: http://reviews.llvm.org/D13276
llvm-svn: 249085
|
| |
|
|
|
|
|
|
| |
so they don't get included on 'm' architectures. NFC.
This should help make the compiler-rt build less noisy.
llvm-svn: 249084
|
| |
|
|
|
|
|
|
|
|
| |
AArch64 uses $d* and $x* to interleave between text and data.
llvm-objdump didn't know about this so it ended up printing garbage.
This patch is a first step towards a solution of the problem.
Differential Revision: http://reviews.llvm.org/D13360
llvm-svn: 249083
|
| |
|
|
| |
llvm-svn: 249082
|
| |
|
|
|
|
|
| |
There's no point in checking VReg_1 because all uses
of it should already have been removed by SILowerI1Copies.
llvm-svn: 249081
|
| |
|
|
| |
llvm-svn: 249080
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was the slowest target custom pass and was spending 80%
of the time in getMinimalPhysRegClass which was called
for every register operand.
Try to use the statically known register class when possible from
the instruction's MCOperandInfo. There are a few pseudo instructions
which are not well behaved with unknown register classes which still
require the expensive physical register class search.
There are a few other possibilities for making this even faster,
such as not inspecting implicit operands. For now those are checked
because it is technically possible to have a scalar load into
exec or vcc which can be implicitly used.
llvm-svn: 249079
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We emit denormalized tables, where every range of invokes in the same
state gets a complete list of EH action entries. This is significantly
simpler than trying to infer the correct nested scoping structure from
the MI. Fortunately, for SEH, the nesting structure is really just a
size optimization.
With this, some basic __try / __except examples work.
llvm-svn: 249078
|
| |
|
|
|
|
|
| |
This matches the behavior of other linkers and seems necessary to link
in some older systems.
llvm-svn: 249077
|
| |
|
|
|
|
| |
because the compiler ignores it and complains.
llvm-svn: 249076
|
| |
|
|
| |
llvm-svn: 249075
|
| |
|
|
| |
llvm-svn: 249074
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Instead of asserting when the kernel metadata is different than we expect,
we should just skip lowering that function. This fixes assertion
failures with OpenCL argument metadata from older LLVM releases.
Reviewers: arsenm
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D13356
llvm-svn: 249073
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds a --start option to the lldb-mi -exec-run command for
getting process stopped at entry point after launch. It is equivelent
to the -s option in the lldb command line interpreter:
process launch -s
and is therefore not supported on all hosts and/or targets. To check
if the --start option is supported, see if the corresponding feature
"exec-run-start-option" is in the list of options reported by the lldb-mi
"-list-features" command.
Patch from engineer.developer@gmail.com (Kirill Lapshin)
Reviewed by: ki.stfu
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D12977
llvm-svn: 249072
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sort by:
ALLOC
ALLOC && NOBITS
ALLOC & EXEC
ALLOC & EXEC && NOBITS
ALLOC & WRITE
ALLOC & WRITE && NOBITS
<nothing> (ignoring NOBITS)
The dynamic section is finalized early because it adds strings to the dynamic string table, which comes before the dynamic table.
llvm-svn: 249071
|
| |
|
|
|
|
|
|
| |
files for OS X to the exclude lists.
This should help make the compiler-rt build less noisy.
llvm-svn: 249070
|
| |
|
|
|
|
|
| |
BranchFolding would merge two funclets together, this is not OK.
Disable this and strengthen the assertion in FuncletLayout.
llvm-svn: 249069
|
| |
|
|
|
|
|
|
| |
files for the iOS simulator to the exclude lists.
This should help make the compiler-rt build less noisy.
llvm-svn: 249068
|
| |
|
|
| |
llvm-svn: 249067
|
| |
|
|
|
|
| |
Thanks to Roman Divacky for the test.
llvm-svn: 249066
|
| |
|
|
|
|
|
|
|
|
| |
result types.
Objective-C ARC lifetime qualifiers are dropped when canonicalizing
function types. Perform the same adjustment before comparing the
deduced result types of lambdas. Fixes rdar://problem/22344904.
llvm-svn: 249065
|
| |
|
|
| |
llvm-svn: 249064
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit supports Sean Eveson's work on loop widening. It is NFC for now.
It adds a new TK_EntireMemSpace invalidation trait that, when applied to a
MemSpaceRegion, indicates that the entire memory space should be invalidated.
Clients can add this trait before invalidating. For example:
RegionAndSymbolInvalidationTraits ITraits;
ITraits.setTrait(MRMgr.getStackLocalsRegion(STC),
RegionAndSymbolInvalidationTraits::TK_EntireMemSpace);
This commit updates the existing logic invalidating global memspace regions for
calls to additionally handle arbitrary memspaces. When generating initial
clusters during cluster analysis we now add a cluster to the worklist if
the memspace for its base is marked with TK_EntireMemSpace.
This also moves the logic for invalidating globals from ClusterAnalysis to
invalidateRegionsWorker so that it is not shared with removeDeadBindingsWorker.
There are no explicit tests with this patch -- but when applied to Sean's patch
for loop widening in http://reviews.llvm.org/D12358 and after updating his code
to set the trait, the failing tests in that patch now pass.
Differential Revision: http://reviews.llvm.org/D12993
llvm-svn: 249063
|
| |
|
|
|
|
| |
This shows that it is really DT_SONAME that is used to detect dups.
llvm-svn: 249062
|
| |
|
|
| |
llvm-svn: 249061
|
| |
|
|
|
|
| |
NFC
llvm-svn: 249060
|
| |
|
|
|
|
| |
repository.
llvm-svn: 249059
|
| |
|
|
| |
llvm-svn: 249058
|
| |
|
|
|
|
|
|
| |
files for iOS to the exclude lists.
This should help make the compiler-rt build less noisy.
llvm-svn: 249057
|
| |
|
|
|
|
|
|
| |
builtins.
This matters because simulator builtins get lipo'd together with the device builtins into a single static archive per-platform.
llvm-svn: 249056
|
| |
|
|
| |
llvm-svn: 249055
|
| |
|
|
|
|
| |
architectures for that OS.
llvm-svn: 249054
|
| |
|
|
|
|
|
|
|
| |
Prior to this patch, -Wtautological-overlap-compare would only warn us
if there was a sketchy logical comparison between variables and
IntegerLiterals. This patch makes -Wtautological-overlap-compare aware
of EnumConstantDecls, so it can apply the same logic to them.
llvm-svn: 249053
|
| |
|
|
|
|
|
|
|
| |
Catchret transfers control from a catch funclet to an earlier funclet.
However, it is not completely clear which funclet the catchret target is
part of. Make this clear by stapling the catchret target's funclet
membership onto the CATCHRET SDAG node.
llvm-svn: 249052
|
| |
|
|
| |
llvm-svn: 249051
|
| |
|
|
|
|
| |
This matches the behavior of LLVM and Clang.
llvm-svn: 249050
|
| |
|
|
|
|
|
| |
Support for pairing unscaled loads and stores has been enabled since the
original ARM64 port. This feature is no longer experimental, AFAICT.
llvm-svn: 249049
|
| |
|
|
|
|
| |
This matches Clang's behavior.
llvm-svn: 249048
|
| |
|
|
|
|
|
|
|
|
| |
information by name in a language-specific way.
Currently, it only supports Objective-C - C++ types can be looked up through debug info via 'image lookup -t', whereas ObjC types via this command are looked up by runtime introspection
This behavior is in line with type lookup's behavior in Xcode 7, but I am definitely open to feedback as to what makes the most sense here
llvm-svn: 249047
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add generic instructions for load complement, load negative and load positive
for fp32 and fp64, and let isel prefer them. They do not clobber CC, and so
give scheduler more freedom. SystemZElimCompare pass will convert them when it
can to the CC-setting variants.
Regression tests updated to expect the new opcodes in places where the old ones
where used. New test case SystemZ/fp-cmp-05.ll checks that
SystemZCompareElim.cpp can handle the new opcodes.
README.txt updated (bullet removed).
Note that fp128 is not yet handled, because it is relatively rare, and is a
bit trickier, because of the fact that l.dfr would operate on the sign bit of
one of the subregisters of a fp128, but we would not want to copy the other
sub-reg in case src and dst regs are not the same.
Reviewed by Ulrich Weigand.
llvm-svn: 249046
|