- Jun 17, 2009
-
-
Lang Hames authored
llvm-svn: 73634
-
Dan Gohman authored
llvm-svn: 73633
-
Dale Johannesen authored
move loads back past a check that the load address is valid, see new testcase. The test that went in with 72661 has exactly this case, except that the conditional it's moving past is checking something else; I've settled for changing that test to reference a global, not a pointer. It may be possible to scan all the tests you pass and make sure none of them are checking any component of the address, but it's not trivial and I'm not trying to do that here. llvm-svn: 73632
-
Owen Anderson authored
llvm-svn: 73631
-
Owen Anderson authored
Add an RAII ScopedWriter, which allows one to acquire a writer lock for the duration of a scope. Simplify a lot of uses of writer locks in Constants.cpp by using it. llvm-svn: 73630
-
Owen Anderson authored
Simplify the locking on the Constants tables, and make it more efficient, by pushing it into the ValueMap from the callers. Document those ValueMap functions that are _not_ locked, so that callers are aware that they need to do the locking themselves. llvm-svn: 73628
-
Torok Edwin authored
llvm-svn: 73625
-
Owen Anderson authored
Type safety for Constants.cpp! Some of this is temporary, as I'm planning to push some of the R/W locking into FoldingSet. llvm-svn: 73624
-
Anton Korobeynikov authored
Patch by Viktor Kutuzov and Anton Korzh from Access Softek, Inc. llvm-svn: 73622
-
Dan Gohman authored
llvm-svn: 73621
-
Owen Anderson authored
llvm-svn: 73620
-
Owen Anderson authored
We need to guard reads of the AbstractTypeUsers list, as well as writes to it. While it would be nice to use a R/W lock here, we can't, because it HAS to be recursive. llvm-svn: 73617
-
Douglas Gregor authored
llvm-svn: 73616
-
Douglas Gregor authored
llvm-svn: 73615
-
Owen Anderson authored
llvm-svn: 73614
-
Chris Lattner authored
llvm-svn: 73613
-
Chris Lattner authored
llvm-svn: 73612
-
Chris Lattner authored
llvm-svn: 73611
-
Chris Lattner authored
of targets for various purposes. llvm-svn: 73610
-
Owen Anderson authored
lock. This is obviously bad, but at least it's threadsafe! If you know how to improve this in a pre-Vista friendly well, patches welcome! Patch by Max Burke. llvm-svn: 73607
-
Nick Lewycky authored
printers. While I'm here, alphabetize. llvm-svn: 73606
-
Sanjiv Gupta authored
>> What if my global variable was into a different address space than stack? >> > > It doesn't matter in terms of semantics: because AnalyzeGlobal > returned false, we're guaranteed the address of the global is never > taken. I wouldn't be surprised if we end up generating invalid IR in > some cases, though, because of the semantics of replaceAllUsesWith. > Do you have a testcase that breaks? > > The problem is replaceAllUsesWith asserts for type mismatch here. Try attached .bc with llvm-ld. assert(New->getType() == getType() && "replaceAllUses of value with new value of different type!"); Since stack is always on address space zero, I don't think that type of GV in a different address space is ever going to match. The other way is to allow replaceAllUsesWith to ignore address spaces while comparing types. (do we have a way to do that ?). But then such an optimization may fail the entire idea of user wanting to place a variable into different memory space. The original idea of user might be to save on the stack space (data memory) and hence he asked the variable to be placed into different memory space (program memory). So the best bet here is to deny this optimization by checking GV->getType()->getAddressSpace() == 0. llvm-svn: 73605
-
Chris Lattner authored
llvm-svn: 73603
-
Nick Lewycky authored
llvm-svn: 73602
-
Mikhail Glushenkov authored
llvm-svn: 73601
-
Mikhail Glushenkov authored
llvm-svn: 73600
-
Eli Friedman authored
creating new files very well). llvm-svn: 73599
-
Eli Friedman authored
SRem. llvm-svn: 73598
-
Mikhail Glushenkov authored
llvm-svn: 73597
-
Mikhail Glushenkov authored
llvm-svn: 73596
-
Chris Lattner authored
target so that the JIT works in LLI, not just the interpreter. llvm-svn: 73595
-
Dan Gohman authored
that gets recognized with a SCEVZeroExtendExpr must be an And with a low-bits mask. With r73540, this is no longer the case. llvm-svn: 73594
-
Devang Patel authored
Do not use first actual instruction's location for prologue. The debug wants to skip prologue while setting a breakpoint for the function. llvm-svn: 73592
-
Douglas Gregor authored
llvm-svn: 73591
-
Douglas Gregor authored
Define LLVM_NATIVE_ARCH in llvm/Config/config.h to be the LLVM back end that corresponds to the native executable, but only when that LLVM back end is being built llvm-svn: 73590
-
Owen Anderson authored
llvm-svn: 73588
-
Owen Anderson authored
thread-safe reference counting. llvm-svn: 73587
-
Owen Anderson authored
llvm-svn: 73586
-
Chris Lattner authored
object files. Now we always build LLVM libraries into archives (.a files). This makes the 'make' build work more like the cmake build, among other things. Doing this exposed some latent circular library dependencies, so I think that llvm-config wasn't quite right for .o files anyway. llvm-svn: 73579
-
Owen Anderson authored
llvm-svn: 73578
-