| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Currently debug info for types used in explicit cast only is not emitted. It happened after a patch for better alignment handling. This patch fixes this bug.
Differential Revision: http://reviews.llvm.org/D13582
llvm-svn: 250795
|
| |
|
|
|
|
|
|
|
|
|
| |
This wasn't doing anything useful. They weren't explicitly used
anywhere, and the RegScavenger ignores reserved registers.
This for some reason caused a random scheduling change in the test.
Getting the check lines to pass is too frustrating, and there's probably
not too much value in checking the vector case's operands N times.
llvm-svn: 250794
|
| |
|
|
|
|
| |
They are now typeless, unlike other operations.
llvm-svn: 250793
|
| |
|
|
| |
llvm-svn: 250792
|
| |
|
|
| |
llvm-svn: 250791
|
| |
|
|
| |
llvm-svn: 250790
|
| |
|
|
|
|
|
|
| |
other minor fixes.
Differential Revision: http://reviews.llvm.org/D13876
llvm-svn: 250789
|
| |
|
|
| |
llvm-svn: 250788
|
| |
|
|
| |
llvm-svn: 250787
|
| |
|
|
|
|
|
| |
Since LiveVariables is uniqued (we just created it from a `DenseSet`),
`FindIndex(LiveVariables, LiveVariables[i])` is always `i`.
llvm-svn: 250786
|
| |
|
|
|
|
|
| |
- Bring it up to the LLVM Coding Style
- Sink it inside `CreateGCRelocates`, which is its only user
llvm-svn: 250785
|
| |
|
|
|
|
|
|
|
|
|
|
| |
`normalizeForInvokeSafepoint` in RewriteStatepointsForGC.cpp, as it is
written today, deals with `gc.relocate` and `gc.result` uses of a
statepoint equally well. This change documents this fact and adds a
test case.
There is no functional change here -- only documentation of existing
functionality.
llvm-svn: 250784
|
| |
|
|
| |
llvm-svn: 250783
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: zturner, spyffe
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D13882
llvm-svn: 250782
|
| |
|
|
| |
llvm-svn: 250781
|
| |
|
|
|
|
|
|
| |
"expr -r" does this. It also returns to a REPL if the LLDB command interpreter
is neseted inside it, for example in cases where a REPL command resulted in a
breakpoint being hit or a crash.
llvm-svn: 250780
|
| |
|
|
| |
llvm-svn: 250779
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are two things out of the ordinary in this commit. First, I made
a loop obviously "infinite" in HexagonInstrInfo.cpp. After checking if
an instruction was at the beginning of a basic block (in which case,
`break`), the loop decremented and checked the iterator for `nullptr` as
the loop condition. This has never been possible (the prev pointers are
always been circular, so even with the weird ilist/iplist
implementation, this isn't been possible), so I removed the condition.
Second, in HexagonAsmPrinter.cpp there was another case of comparing a
`MachineBasicBlock::instr_iterator` against `MachineBasicBlock::end()`
(which returns `MachineBasicBlock::iterator`). While not incorrect,
it's fragile. I switched this to `::instr_end()`.
All that said, no functionality change intended here.
llvm-svn: 250778
|
| |
|
|
| |
llvm-svn: 250777
|
| |
|
|
| |
llvm-svn: 250776
|
| |
|
|
|
|
| |
This matches what both ld.bfd and gold do.
llvm-svn: 250775
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
static methods"
This reverts commit r250592.
It has issues around unevaluated contexts, like this:
template <class T> struct A { T i; };
template <class T>
struct B : A<T> {
using A<T>::i;
typedef decltype(i) U;
};
template struct B<int>;
llvm-svn: 250774
|
| |
|
|
|
|
|
|
|
| |
This makes LLDB launch and create a REPL, specifying no target so that the REPL
can create one for itself. Also added the "--repl-language" option, which
specifies the language to use. Plumbed the relevant arguments and errors
through the REPL creation mechanism.
llvm-svn: 250773
|
| |
|
|
|
|
|
|
| |
HostInfo::GetProgramFileSpec(). This function returns the FileSpec to the program that is running the LLDB.framework or lldb.so and is more reliable than checking the path of LLDB.framework/lldb.so itself since it might not exist within the Xcode.app bundle (DYLD_FRAMEWORK_PATH). Then we check DEVELOPER_DIR, then check the currently installed Xcode with xcrun.
<rdar://problem/23167253>
llvm-svn: 250772
|
| |
|
|
| |
llvm-svn: 250771
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the path if m_filename is set to exactly '.'. Previously this would cause a FileSpec object that looked like:
m_directory = "/tmp"
m_filename = "."
To look like:
m_directory = "/tmp/."
m_filename = "foo.txt"
if "foo.txt" was appended to it. With this fix it will be:
m_directory = "/tmp"
m_filename = "foo.txt"
llvm-svn: 250770
|
| |
|
|
| |
llvm-svn: 250769
|
| |
|
|
|
|
|
|
| |
the async attach when attaching to a process by name and with waitfor.
<rdar://problem/22821480>
llvm-svn: 250768
|
| |
|
|
|
|
|
|
| |
resolution, which are essentially placeholder types meant to appease a language's type system but do not offer any actual information to the debugger, unless further resolved
This is currently meant for data formatters to know to ignore such types in caching and lookup
llvm-svn: 250767
|
| |
|
|
|
|
|
| |
Mostly just converted to range-based for loops. May have converted a
couple of extra loops as a drive-by (not sure).
llvm-svn: 250766
|
| |
|
|
| |
llvm-svn: 250765
|
| |
|
|
| |
llvm-svn: 250764
|
| |
|
|
|
|
|
|
|
| |
This patch was generating by running `2to3` on the files in the
lldb/test directory. This patch should be NFC, but it does
introduce the `from __future__ import print_function` line, which
will break future uses of the print statement.
llvm-svn: 250763
|
| |
|
|
|
|
|
| |
This mostly fixes some print statements, but there were also some
instances of dict.iteritems() lingering that this found.
llvm-svn: 250762
|
| |
|
|
| |
llvm-svn: 250761
|
| |
|
|
| |
llvm-svn: 250760
|
| |
|
|
| |
llvm-svn: 250759
|
| |
|
|
| |
llvm-svn: 250758
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
static data members
Out-of-line definitions of static data members which have an inline
initializer must get GVA_DiscardableODR linkage instead of
GVA_StrongExternal linkage.
MSVC 2013's behavior is different with respect to this and would cause
link errors if one TU provided a definition while another did not.
MSVC 2015 fixed this bug, making this OK. Note that the 2015 behavior
is always compatible with 2013: it never produces a strong definition.
This essentially reverts r237787.
llvm-svn: 250757
|
| |
|
|
| |
llvm-svn: 250756
|
| |
|
|
| |
llvm-svn: 250755
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MachineBlockPlacement pass.
Currently, in MachineBlockPlacement pass the loop is rotated to let the best exit to be the last BB in the loop chain, to maximize the fall-through from the loop to outside. With profile data, we can determine the cost in terms of missed fall through opportunities when rotating a loop chain and select the best rotation. Basically, there are three kinds of cost to consider for each rotation:
1. The possibly missed fall through edge (if it exists) from BB out of the loop to the loop header.
2. The possibly missed fall through edges (if they exist) from the loop exits to BB out of the loop.
3. The missed fall through edge (if it exists) from the last BB to the first BB in the loop chain.
Therefore, the cost for a given rotation is the sum of costs listed above. We select the best rotation with the smallest cost. This is only for PGO mode when we have more precise edge frequencies.
Differential revision: http://reviews.llvm.org/D10717
llvm-svn: 250754
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A REPL takes over the command line and typically treats input as source code.
REPLs can also do code completion. The REPL class allows its subclasses to
implement the language-specific functionality without having to know about the
IOHandler-specific internals.
Also added a PluginManager-based way of getting to a REPL given a language and
a target.
Also brought in some utility code and expression options that are useful for
REPLs, such as line offsets for expressions, ANSI terminal coloring of errors,
and a few IOHandler convenience functions.
llvm-svn: 250753
|
| |
|
|
| |
llvm-svn: 250752
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In r248047, I attempted to fix a build breakage introduced by using
llvm's regex support from lldb-mi. However, my approach was flawed
when LLVM and lldb are dynamically linked, in which case two copies
of LLVMSupport would end up in memory, causing crashes on lldb start up.
Instead, use LINK_COMPONENTS to make sure lldb-mi has access to the
LLVMSupport symbols without causing duplication in the dynamic library
case.
llvm-svn: 250751
|
| |
|
|
| |
llvm-svn: 250750
|
| |
|
|
|
|
| |
Thanks Dave!
llvm-svn: 250749
|
| |
|
|
| |
llvm-svn: 250748
|
| |
|
|
|
|
|
|
|
|
|
|
| |
As usual, this is a polymorphic hierarchy without polymorphic ownership,
so simply make the dtor protected non-virtual, protected default copy
ctor/assign, and make derived classes final. The derived classes will
pick up correct default public copy ops (and dtor) implicitly.
(wish I could add -Wdeprecated to the build, but last time I tried it
triggered on some system headers I still need to look into/figure out)
llvm-svn: 250747
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow LLVM to optimize the sequence like the following:
%inc = add nsw i32 %i, 1
%cmp = icmp slt %n, %inc
into:
%cmp = icmp sle i32 %n, %i
The case is not handled previously due to the complexity of compuation of %n.
Hence, LLVM cannot swap operands of icmp accordingly.
llvm-svn: 250746
|