| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
like normal integers.
llvm-svn: 149223
|
| |
|
|
| |
llvm-svn: 149222
|
| |
|
|
|
|
| |
when the result type has a different # elements than the input vectors.
llvm-svn: 149221
|
| |
|
|
| |
llvm-svn: 149220
|
| |
|
|
| |
llvm-svn: 149219
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
all RTTI types, and since we don't use RTTI anymore since clang and llvm don't
we don't really need this header file. All shared pointer definitions have
been moved into "lldb-forward.h".
Defined std::tr1::weak_ptr definitions for all of the types that inherit from
enable_shared_from_this() in "lldb-forward.h" in preparation for thread
hardening our public API.
The first in the thread hardening check-ins. First we start with SBThread.
We have issues in our lldb::SB API right now where if you have one object
that is being used by two threads we have a race condition. Consider the
following code:
1 int
2 SBThread::SomeFunction()
3 {
4 int result = -1;
5 if (m_opaque_sp)
6 {
7 result = m_opaque_sp->DoSomething();
8 }
9 return result;
10 }
And now this happens:
Thread 1 enters any SBThread function and checks its m_opaque_sp and is about
to execute the code on line 7 but hasn't yet
Thread 2 gets to run and class sb_thread.Clear() which calls m_opaque_sp.clear()
and clears the contents of the shared pointer member
Thread 1 now crashes when it resumes.
The solution is to use std::tr1::weak_ptr. Now the SBThread class contains a
lldb::ThreadWP (weak pointer to our lldb_private::Thread class) and this
function would look like:
1 int
2 SBThread::SomeFunction()
3 {
4 int result = -1;
5 ThreadSP thread_sp(m_opaque_wp.lock());
6 if (thread_sp)
7 {
8 result = m_opaque_sp->DoSomething();
9 }
10 return result;
11 }
Now we have a solid thread safe API where we get a local copy of our thread
shared pointer from our weak_ptr and then we are guaranteed it can't go away
during our function.
So lldb::SBThread has been thread hardened, more checkins to follow shortly.
llvm-svn: 149218
|
| |
|
|
| |
llvm-svn: 149217
|
| |
|
|
|
|
| |
patterns with custom lowering to a target specific nodes.
llvm-svn: 149216
|
| |
|
|
|
|
| |
should be feature complete now. Lets see if it works.
llvm-svn: 149215
|
| |
|
|
| |
llvm-svn: 149214
|
| |
|
|
| |
llvm-svn: 149213
|
| |
|
|
| |
llvm-svn: 149212
|
| |
|
|
|
|
| |
a better doxyment group for convenience predicates.
llvm-svn: 149211
|
| |
|
|
| |
llvm-svn: 149210
|
| |
|
|
| |
llvm-svn: 149209
|
| |
|
|
|
|
| |
useful output from the buildbots
llvm-svn: 149208
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
due to RTTI worries since llvm and clang don't use RTTI, but I was able to
switch back with no issues as far as I can tell. Once the RTTI issue wasn't
an issue, we were looking for a way to properly track weak pointers to objects
to solve some of the threading issues we have been running into which naturally
led us back to std::tr1::weak_ptr. We also wanted the ability to make a shared
pointer from just a pointer, which is also easily solved using the
std::tr1::enable_shared_from_this class.
The main reason for this move back is so we can start properly having weak
references to objects. Currently a lldb_private::Thread class has a refrence
to its parent lldb_private::Process. This doesn't work well when we now hand
out a SBThread object that contains a shared pointer to a lldb_private::Thread
as this SBThread can be held onto by external clients and if they end up
using one of these objects we can easily crash.
So the next task is to start adopting std::tr1::weak_ptr where ever it makes
sense which we can do with lldb_private::Debugger, lldb_private::Target,
lldb_private::Process, lldb_private::Thread, lldb_private::StackFrame, and
many more objects now that they are no longer using intrusive ref counted
pointer objects (you can't do std::tr1::weak_ptr functionality with intrusive
pointers).
llvm-svn: 149207
|
| |
|
|
|
|
|
|
| |
headers. The remaining headers require more sophisticated
requirements; they'll be handled separately. Part of
<rdar://problem/10710060>.
llvm-svn: 149206
|
| |
|
|
| |
llvm-svn: 149205
|
| |
|
|
| |
llvm-svn: 149204
|
| |
|
|
|
|
| |
library, since it doesn't really have anything to do with Clang.
llvm-svn: 149203
|
| |
|
|
| |
llvm-svn: 149202
|
| |
|
|
| |
llvm-svn: 149201
|
| |
|
|
|
|
| |
results in libclang.
llvm-svn: 149200
|
| |
|
|
|
|
|
|
|
|
|
|
| |
@import <complete with module names here>
or
@import std.<complete with submodule names here>
Addresses <rdar://problem/10710117>.
llvm-svn: 149199
|
| |
|
|
|
|
|
|
|
| |
for getting the name of the module file, unifying the code for
searching for a module with a given name (into lookupModule()) and
separating out the mapping to a module file (into
getModuleFileName()). No functionality change.
llvm-svn: 149197
|
| |
|
|
| |
llvm-svn: 149196
|
| |
|
|
| |
llvm-svn: 149195
|
| |
|
|
| |
llvm-svn: 149194
|
| |
|
|
|
|
|
|
| |
kill the retain from the return site.
This has the workaround nature. It's badness all around.
llvm-svn: 149193
|
| |
|
|
| |
llvm-svn: 149192
|
| |
|
|
|
|
|
| |
from the SBTarget and SBModule interfaces. Also added many python properties
for easier access to many things from many SB objects.
llvm-svn: 149191
|
| |
|
|
|
|
|
| |
in the presence of straight-line cleanups. This is a simple but
important case, particularly for ARC.
llvm-svn: 149190
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Don't call malloc+free in the very hot forward().
- Don't call isTiedToDefOperand().
- Don't create BitVector temporaries.
- Merge DeadRegs into KillRegs.
- Eliminate the early clobber checks, they were irrelevant to scavenging.
- Remove unnecessary code from -Asserts builds.
This speeds up ARM PEI by 3.4x and overall llc -O0 codegen time by 11%.
llvm-svn: 149189
|
| |
|
|
| |
llvm-svn: 149188
|
| |
|
|
|
|
|
| |
The alternative LHS &= ~RHS is way too slow because it creates a
temporary that calls malloc/free.
llvm-svn: 149187
|
| |
|
|
|
|
|
|
| |
like Darwin that don't support it. We should also complain about
invalid -fvisibility=protected, but that information doesn't seem
to exist at the most appropriate time, so I've left a FIXME behind.
llvm-svn: 149186
|
| |
|
|
| |
llvm-svn: 149185
|
| |
|
|
|
|
|
|
| |
consume one or more of their arguments. If not done, this will cause a leak
as method will not consume the argument when receiver is null.
// rdar://10444474
llvm-svn: 149184
|
| |
|
|
|
|
|
|
|
| |
There is really no reason to have these only available on x86. It's
just __builtin_c[tl]z for shorts.
Modernize the test while at it.
llvm-svn: 149183
|
| |
|
|
|
|
| |
(and other targets).
llvm-svn: 149182
|
| |
|
|
| |
llvm-svn: 149181
|
| |
|
|
|
|
|
|
| |
and MIPS ELF backends.
Fixes PR11877
llvm-svn: 149180
|
| |
|
|
| |
llvm-svn: 149179
|
| |
|
|
|
|
| |
that don't care about the language don't have to pull in all the headers.
llvm-svn: 149178
|
| |
|
|
| |
llvm-svn: 149177
|
| |
|
|
| |
llvm-svn: 149175
|
| |
|
|
|
|
| |
messages and allows us to fix PR11865.
llvm-svn: 149174
|
| |
|
|
|
|
| |
caught by Chad.
llvm-svn: 149173
|
| |
|
|
| |
llvm-svn: 149172
|