- Jan 30, 2012
-
-
Chris Lattner authored
like normal integers. llvm-svn: 149223
-
Chris Lattner authored
llvm-svn: 149222
-
Chris Lattner authored
when the result type has a different # elements than the input vectors. llvm-svn: 149221
-
NAKAMURA Takumi authored
llvm-svn: 149220
-
NAKAMURA Takumi authored
llvm-svn: 149219
-
Greg Clayton authored
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
-
Chris Lattner authored
llvm-svn: 149217
-
Craig Topper authored
Move some XOP patterns into instruction definition. Replae VPCMOV intrinsic patterns with custom lowering to a target specific nodes. llvm-svn: 149216
-
Chris Lattner authored
should be feature complete now. Lets see if it works. llvm-svn: 149215
-
Douglas Gregor authored
llvm-svn: 149214
-
Douglas Gregor authored
llvm-svn: 149213
-
Douglas Gregor authored
llvm-svn: 149212
-
Chandler Carruth authored
a better doxyment group for convenience predicates. llvm-svn: 149211
-
- Jan 29, 2012
-
-
Douglas Gregor authored
llvm-svn: 149210
-
Douglas Gregor authored
llvm-svn: 149209
-
Douglas Gregor authored
Temporary disable the -verify on this test in the hope of getting some useful output from the buildbots llvm-svn: 149208
-
Greg Clayton authored
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
-
Douglas Gregor authored
headers. The remaining headers require more sophisticated requirements; they'll be handled separately. Part of <rdar://problem/10710060>. llvm-svn: 149206
-
Fariborz Jahanian authored
llvm-svn: 149205
-
Douglas Gregor authored
llvm-svn: 149204
-
Douglas Gregor authored
library, since it doesn't really have anything to do with Clang. llvm-svn: 149203
-
Douglas Gregor authored
llvm-svn: 149202
-
Douglas Gregor authored
llvm-svn: 149201
-
Douglas Gregor authored
results in libclang. llvm-svn: 149200
-
Douglas Gregor authored
@import <complete with module names here> or @import std.<complete with submodule names here> Addresses <rdar://problem/10710117>. llvm-svn: 149199
-
Douglas Gregor authored
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
-
Douglas Gregor authored
llvm-svn: 149196
-
Anton Korobeynikov authored
llvm-svn: 149195
-
Anton Korobeynikov authored
llvm-svn: 149194
-
John McCall authored
kill the retain from the return site. This has the workaround nature. It's badness all around. llvm-svn: 149193
-
Greg Clayton authored
llvm-svn: 149192
-
Greg Clayton authored
from the SBTarget and SBModule interfaces. Also added many python properties for easier access to many things from many SB objects. llvm-svn: 149191
-
John McCall authored
in the presence of straight-line cleanups. This is a simple but important case, particularly for ARC. llvm-svn: 149190
-
Jakob Stoklund Olesen authored
- 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
-
Jakob Stoklund Olesen authored
llvm-svn: 149188
-
Jakob Stoklund Olesen authored
The alternative LHS &= ~RHS is way too slow because it creates a temporary that calls malloc/free. llvm-svn: 149187
-
John McCall authored
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
-
Nick Lewycky authored
llvm-svn: 149185
-
- Jan 28, 2012
-
-
Fariborz Jahanian authored
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
-
Benjamin Kramer authored
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
-