| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 215777
|
| |
|
|
| |
llvm-svn: 215776
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
More specifically, this change can be summarized as follows:
1) Makes an lldbHostPosix library which contains code common to
all posix platforms.
2) Creates Host/FileSystem.h which defines a common FileSystem
interface.
3) Implements FileSystem.h in Host/windows and Host/posix.
4) Creates Host/FileCache.h, implemented in Host/common, which
defines a class useful for storing handles to open files needed
by the debugger.
Differential Revision: http://reviews.llvm.org/D4889
llvm-svn: 215775
|
| |
|
|
| |
llvm-svn: 215774
|
| |
|
|
|
|
|
| |
I've shied away from ArrayRef'izing CompilerInvocation::CreateFromArgs
in this commit because that is a less localized change.
llvm-svn: 215773
|
| |
|
|
|
|
| |
Phabricator Revision: http://reviews.llvm.org/D4935
llvm-svn: 215772
|
| |
|
|
| |
llvm-svn: 215771
|
| |
|
|
|
|
|
|
| |
Currently, if you use a MultiArg<> option, then printing out the help/usage
message will cause an assert. This fixes getOptionHelpName() to work with
MultiArg Options.
llvm-svn: 215770
|
| |
|
|
| |
llvm-svn: 215769
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
statement.
A little test case simplification - this could be simplified further,
though there are certainly interesting connections to the if/else
construct so I'm hesitant to remove that entirely though it does appear
somewhat unrelated.
(similar fix to r215766, related to PR19864)
llvm-svn: 215768
|
| |
|
|
|
|
| |
Thanks to dblaikie for the impetus to look for a better name.
llvm-svn: 215767
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
loop, to the start of the loop.
This avoids debuggers stepping to strange places (like the last
statement in the loop body, or the first statement in the if).
This is not the whole answer, though - similar bugs no doubt exist in
other loops (patches to follow) and attributing exception handling code
to the correct line is also tricky (based on the previous fix to
PR19864, exception handling is still erroneously attributed to the 'if'
line).
llvm-svn: 215766
|
| |
|
|
|
|
|
| |
We were setting the comdat when functions were copied in the initial pass, but
not when they were linked only when we found out that they are needed.
llvm-svn: 215765
|
| |
|
|
| |
llvm-svn: 215764
|
| |
|
|
|
|
| |
accidentally enabled in r215479. Add a test.
llvm-svn: 215763
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The darwin linker has an option, heavily used by Xcode, in which, instead
of listing all input files on the command line, the input file paths are
written to a text file and the path of that text file is passed to the linker
with the -filelist option (similar to @file).
In order to make test cases for this, I generalized the -test_libresolution
option to become -test_file_usage.
llvm-svn: 215762
|
| |
|
|
|
|
|
|
|
|
| |
This also suggests some refactoring to simplify this code. Basically, a
ton of complexity in this argument handling code comes from the need to
save const char *'s in stable storage for pushing onto argv.
It seems like llvm::cl::StringSaver can be improved to cover all the
needs here.
llvm-svn: 215761
|
| |
|
|
| |
llvm-svn: 215760
|
| |
|
|
| |
llvm-svn: 215759
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D4910
llvm-svn: 215757
|
| |
|
|
| |
llvm-svn: 215756
|
| |
|
|
| |
llvm-svn: 215755
|
| |
|
|
| |
llvm-svn: 215754
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The floating-point value positive zero (+0.0) is a valid immedate value
according to isFPImmLegal. As a result AArch64 FastISel went ahead and
used the immediate version of fmov to materialize the constant.
The problem is that the immediate version of fmov cannot encode an imediate for
postive zero. Instead a fmov from the zero register was supposed to be used in
this case.
This fix adds handling for this special case and uses fmov from the zero
register to materialize a positive zero (negative zeroes go to the constant
pool).
There is no test case for this, because this code is currently dead. It will be
enabled in a future commit and I will add a test case in a separate commit
after that.
This fixes <rdar://problem/18027157>.
llvm-svn: 215753
|
| |
|
|
|
|
|
|
|
|
| |
Note: This reapplies r215582 without any modifications. The refactoring wasn't
responsible for the buildbot failures.
Original commit message:
Cleanup and prepare constant materialization code for future commits.
llvm-svn: 215752
|
| |
|
|
|
|
|
|
|
|
|
| |
The core logic in main() is actually pretty simple, but there's lots of
stuff that has been added over time which obscures the flow of the code.
In upcoming patches, I'll be pulling more stuff out of the main
codepath.
I'm open to naming suggestions for these helper functions.
llvm-svn: 215751
|
| |
|
|
|
|
| |
There is a similar patch up for review. I'll submit my changes via that.
llvm-svn: 215750
|
| |
|
|
| |
llvm-svn: 215749
|
| |
|
|
| |
llvm-svn: 215748
|
| |
|
|
| |
llvm-svn: 215747
|
| |
|
|
| |
llvm-svn: 215746
|
| |
|
|
|
|
| |
They can be compared for identity.
llvm-svn: 215745
|
| |
|
|
|
|
|
|
|
|
|
|
| |
MSVC gives this awesome diagnostic:
..\lib\Target\X86\X86ISelLowering.cpp(7085) : error C2971: 'llvm::VariadicFunction1' : template parameter 'Func' : 'isShuffleEquivalentImpl' : a local variable cannot be used as a non-type argument
..\include\llvm/ADT/VariadicFunction.h(153) : see declaration of 'llvm::VariadicFunction1'
..\lib\Target\X86\X86ISelLowering.cpp(7061) : see declaration of 'isShuffleEquivalentImpl'
Using an anonymous namespace makes the problem go away.
llvm-svn: 215744
|
| |
|
|
|
|
| |
<rdar://problem/17727734>
llvm-svn: 215743
|
| |
|
|
|
|
|
|
| |
Add initial support for using LIT to run the tests on FreeBSD.
More work may need to be done to add support for FreeBSD but this is a
good initial step.
llvm-svn: 215742
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes include:
1 - added new FileSpec method: bool FileSpec::Readable()
2 - detect when an executable is not readable and give an appropriate error for:
(lldb) file /tmp/unreadablefile
3 - detect when a core file is not readable and give an appropriate error
4 - detect when a specified core file doesn't exist and give an appropriate error
<rdar://problem/17727734>
llvm-svn: 215741
|
| |
|
|
|
|
|
|
|
|
|
| |
Turning off explicit template instantiation leads to a pretty
significant build time and code size cost. We're better off dealing
with ABI incompatibility issues that come up in a less heavy handed
way.
This reverts commit r189610.
llvm-svn: 215740
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Ordinarily (shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2)
is only done if the add has one use. If the resulting constant
add can be folded into an addressing mode, force this to happen
for the pointer operand.
This ends up happening a lot because of how LDS objects are allocated.
Since the globals are allocated next to each other, acessing the first
element of the second object is directly indexed by a shifted pointer.
llvm-svn: 215739
|
| |
|
|
| |
llvm-svn: 215738
|
| |
|
|
|
|
| |
where applicable for blending.
llvm-svn: 215737
|
| |
|
|
|
|
|
| |
user provided setter name (as declared in @property attribute declaration).
rdar://18022762
llvm-svn: 215736
|
| |
|
|
|
|
|
|
| |
As Jim pointed out this assert isn't really needed to test for correctness,
because the code right afterwards does the same check and falls-back to
SelectionDAG - as intended.
llvm-svn: 215735
|
| |
|
|
| |
llvm-svn: 215734
|
| |
|
|
|
|
| |
Thanks Jim for finding this.
llvm-svn: 215733
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The default assumes that a 16-bit signed offset is used.
LDS instruction use a 16-bit unsigned offset, so it wasn't
being used in some cases where it was assumed a negative offset
could be used.
More should be done here, but first isLegalAddressingMode needs
to gain an addressing mode argument. For now, copy most of the rest
of the default implementation with the immediate offset change.
llvm-svn: 215732
|
| |
|
|
| |
llvm-svn: 215731
|
| |
|
|
|
|
|
|
| |
Made Process::Attach list the matching processes if there is more than one match.
<rdar://problem/18023352>
llvm-svn: 215730
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a previous iteration of the pass, we would try to compensate for
writeback by updating later instructions and/or inserting a SUBS to
reset the base register if necessary.
Since such a SUBS sets the condition flags it's not generally safe to do
this. For now, only merge LDR/STRs if there is no writeback to the base
register (LDM that loads into the base register) or the base register is
killed by one of the merged instructions. These cases are clear wins
both in terms of instruction count and performance.
Also add three new test cases, and update the existing ones accordingly.
llvm-svn: 215729
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds some code back that was deleted in r92053. The location of the
last merged memory operation needs to be kept up-to-date since MemOps
may be in a different order to the original instruction stream to
allow merging (since registers need to be in ascending order). Also
simplify the logic to determine BaseKill using findRegisterUseOperandIdx
to use an equivalent function call instead.
llvm-svn: 215728
|
| |
|
|
|
|
|
|
|
| |
We actually need to return the register into which we materialized the constant
and not just "true" for success. This code is currently partially dead, that is
why it didn't trigger any failures yet. Once I change the order of the constant
materialization this code will be fully exercised.
llvm-svn: 215727
|